使用特定文本PHP / XPath获取DOMElement

时间:2011-12-31 17:42:33

标签: php dom xpath

在PHP中,我希望得到包含给定文本的所有DOMElement

我在DOMText时获得$xpath->query("//text()[contains(., 'My String')]"),但我必须执行哪个查询来获取DOMElement

2 个答案:

答案 0 :(得分:4)

使用

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

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

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

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

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

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

分别为:

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

答案 1 :(得分:1)

尝试//text()[contains(., 'My String')]/..之类的路径。