phpQueryObject::getNodeXpath PHP Method

getNodeXpath() protected method

Returns node's XPath.
protected getNodeXpath ( unknown_type $oneNode = null, $namespace = null ) : string
$oneNode unknown_type
return string
    protected function getNodeXpath($oneNode = null, $namespace = null)
    {
        $return = array();
        $loop = $oneNode ? array($oneNode) : $this->elements;
        //		if ($namespace)
        //			$namespace .= ':';
        foreach ($loop as $node) {
            if ($node instanceof DOMDOCUMENT) {
                $return[] = '';
                continue;
            }
            $xpath = array();
            while (!$node instanceof DOMDOCUMENT) {
                $i = 1;
                $sibling = $node;
                while ($sibling->previousSibling) {
                    $sibling = $sibling->previousSibling;
                    $isElement = $sibling instanceof DOMELEMENT;
                    if ($isElement && $sibling->tagName == $node->tagName) {
                        $i++;
                    }
                }
                $xpath[] = $this->isXML() ? "*[local-name()='{$node->tagName}'][{$i}]" : "{$node->tagName}[{$i}]";
                $node = $node->parentNode;
            }
            $xpath = implode('/', array_reverse($xpath));
            $return[] = '/' . $xpath;
        }
        return $oneNode ? $return[0] : $return;
    }