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

在PHP中,我希望得到包含给定文本的所有 DOMElement </ code>。</ p >

$ xpath-&gt; query(“// text()[contains(。,'My String')]”)时,我得 DOMText </ code> </ 代码>,但我必须执行哪个查询来获取 DOMElement </ code>?</ p>
</ div>

展开原文

原文

In PHP, i want to get all DOMElement containing a given text.

I get DOMText when $xpath->query("//text()[contains(., 'My String')]"), but which query must i perform for getting DOMElement instead?

2个回答



使用</ strong>:</ p>

 (// * [  text()
[contains(。,'My String')]
]
)[1]
</ code> </ pre>

这将选择XML中的第一个元素 具有包含字符串“My String”</ code>的文本节点子文档的文档。</ p>

如果保证只存在一个这样的元素,则上面的表达式可以是 简化为:</ p>

  // * [text()
[contains(。,'My String')]
]
</ code> </ pre>

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

 (//  * [contains(。,'My String')])[1] 
</ code> </ pre>

:</ p>

  /  / * [contains(。,'My String')] 
</ code> </ pre>
</ div>

展开原文

原文

Use:

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

This selects the first element in the XML document that has a text node child that contains the string "My String".

If it is guaranteed that only one such element exist, the above expression can be simplified to:

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

If the elements you are looking for are guaranteed to have just a single text-node child, this expression can be simplified to:

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

respectively:

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

dongwuxie7976
dongwuxie7976 别客气。 请考虑接受这个答案(点击答案旁边的复选标记)。
8 年多之前 回复



尝试路径,如 // text()[contains(。,'My String')] / .. </ 代码>。</ p>
</ div>

展开原文

原文

Try a path like //text()[contains(., 'My String')]/...

dpf7891
dpf7891 马丁,通常有一个不包含反转轴的表达式。
8 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐