xpath使用PHP查找节点是否存在

时间:2012-10-09 09:54:25

标签: php dom xpath

我想找到/创建查询运行后找到的所有元素的xpath。

我试过了,但我卡住了。

此代码在所有元素/节点中搜索包含字母“t”的任何值。如果找到't',我想知道该元素的xpath:

<?php

$dom = new DOMDocument();

@$dom->loadHTMLFile('http://www.linkbook.co/');

//use DOMXpath to navigate the html with the DOM
$dom_xpath = new DOMXpath($dom);

$elements = $dom_xpath->query("//*[text()[contains(., 't')]]");
var_dump($elements);
if (!is_null($elements)) {

  foreach ($elements as $element) {
  var_dump($element);
    echo "\n[". $element->nodeName. "]";

    $nodes = $element->childNodes;
    foreach ($nodes as $node) {
      echo $node->nodeValue. "\n";
    }

  }

}

?>

1 个答案:

答案 0 :(得分:3)

DOMNode::getNodePath就是这么做的,所以试试echo $node->getNodePath()