php XPath查询,查找其后代包含特定文本的节点

krugob8w  于 2023-10-15  发布在  PHP
关注(0)|答案(2)|浏览(107)

做一些PHP/Xpath编码的一些刮,我想知道一个表达式来选择节点,这些节点的父节点的兄弟节点,在它们的后代树的某个地方,包含一个具有特定文本值的节点。
假设节点是span[@ng=“league”],后代中的文本值是'SKT',我相信它应该以某种方式包含contains(text(),'SKT'),但我不太确定其余的。蒂娅
I've tried to create a diagram of the situation here

|
+[parent]
|    |
|   [the node I want]
|     
+[sibling of "parent" node seen above]
|   |
|   *
|   |
|   +---[specific text, found with previous xpath query]
|
etc
qlvxas9a

qlvxas9a1#

下面的函数将返回span[@ng="league"]元素,其中span中至少有一个包含子字符串'SKT'的文本节点:

//span[@ng="league" and .//text()[contains(., 'SKT')]]

如果这不起作用,那么你需要更具体,即张贴最小的HTML/XML示例(格式化的文本,而不是图像),其中上面的HTML没有返回所需的输出

e4yzc0pl

e4yzc0pl2#

如果你的xml是

<parent>
  <span ng="league">The node you want </span>
</parent>
<any>
    <any2>
       <any3>SKT</any3>
   </any2>
</any>

你可以使用这样的xpath

//span[@ng="league"][../following-sibling::*[contains(., "SKT")]]

相关问题