php - 获取具有特定文本 PHP/XPath 的 DOMElement

标签 php dom xpath

在 PHP 中,我想获取所有包含给定文本的 DOMElement

$xpath->query("//text()[contains(., 'My String')]") 时,我得到了 DOMText,但是哪个查询我必须执行以获得 DOMElement 吗?

最佳答案

使用:

(//*[text()
      [contains(., 'My String')]
   ]
 )[1]

这将选择 XML 文档中的第一个元素,该元素的文本节点子节点包含字符串 "My String"

如果保证只有一个这样的元素存在,上面的表达式可以简化为:

//*[text()
      [contains(., 'My String')]
   ]

如果您要查找的元素保证只有一个文本节点子节点,则此表达式可以简化为:

(//*[contains(., 'My String')])[1]

分别是:

//*[contains(., 'My String')]

关于php - 获取具有特定文本 PHP/XPath 的 DOMElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8689579/

相关文章:

javascript - 如何在 javascript 中向 XML 文档的根节点添加属性

javascript - GetElementsByTagName ▪ item() { [本地代码] } - 这是什么?

xml - XPath 可选节点

php - 为什么 <li> 没有对齐

php - 优化慢速 SQL 查询

php - 两个 PHP 页面将表单数据传递到同一个目标文件

php - 使用 DOM 抓取网站的标题

xpath - 如何编写 XPath 查询来匹配两个属性?

php - 在 xpath 中根据类和样式排除标签

php - laravel:如何获取 Eloquent 模型的列名?