summaryrefslogtreecommitdiff
path: root/plugins/af_readability/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMElement.php
blob: b0da84fb917b67155fa30d5ce8ea4d89d3ebe442 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php

namespace fivefilters\Readability\Nodes\DOM;

use fivefilters\Readability\Nodes\NodeTrait;

class DOMElement extends \DOMElement
{
    use NodeTrait;

    /**
     * Returns the child elements of this element.
     * 
     * To get all child nodes, including non-element nodes like text and comment nodes, use childNodes.
     *
     * @return DOMNodeList
     */
    public function children()
    {
        $newList = new DOMNodeList();
        foreach ($this->childNodes as $node) {
            if ($node->nodeType === XML_ELEMENT_NODE) {
                $newList->add($node);
            }
        }
        return $newList;
    }

    /**
     * Returns the Element immediately prior to the specified one in its parent's children list, or null if the specified element is the first one in the list.
     *
     * @see https://wiki.php.net/rfc/dom_living_standard_api
     * @return DOMElement|null
     */
    public function previousElementSibling()
    {
        $previous = $this->previousSibling;
        while ($previous) {
            if ($previous->nodeType === XML_ELEMENT_NODE) {
                return $previous;
            }
            $previous = $previous->previousSibling;
        }
        return null;
    }
}