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

标签 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";
    }

  }

}

?>

最佳答案

DOMNode::getNodePath正是这样做的,因此请尝试echo $node->getNodePath()

关于php - xpath使用PHP查找节点是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12797379/

相关文章:

PHP、MySQL、PDO 事务 - try block 中的代码是否在 commit() 处停止?

php - 使用 sftp 和 ssh2 的 fopen 段错误

php - 在php/regex中解析表内容并通过td获取结果

javascript - 将 Pig Latin JavaScript 函数转换为 GUI 时遇到问题

javascript - 在 jQuery 中注入(inject) HTML 的元素中使用 Javascript

php - 搜索 XML 项目 PHP XPath

java - Selenium CSS 选择器语法用于检查类和文本

xpath 选择所有 text() 但不是来自特定标签/类属性

php - WebsitePanel - mysql_connect() : Access denied for user 'user' @'localhost' (using password: YES) on line 38. 连接到 mysql 时出错

php - mysql根据检查用特定文本替换列