使用xpath以特定id检索每个兄弟节点的节点

时间:2016-10-26 17:59:16

标签: html xpath

假设我有一个像这样的HTML:

sudo /opt/bitnami/ctlscript.sh restart redis

我想输出:

<node>
       <child class="color" id="red"></child>
</node>
<node>
       <child class="ok"></child>
</node>
<node>
       <child class="ok"></child>
</node>
<node>
       <child class="color" id="blue"></child>
</node>
<node>
       <child class="ok"></child>
</node>

也就是说,生成red red blue

<child>个COLOR节点的信息

我尝试了什么:

class="ok"

直觉地认为每个孩子都会得到一个“节点#”节点“ok”,但它不起作用。

1 个答案:

答案 0 :(得分:0)

据我所知,使用纯XPath 1.0无法做到这一点。使用支持FLWOR的更高版本的XPath,您可以执行以下操作:

for $node in //node[child/@class='ok']
return $node/preceding-sibling::node[child/@id][1]/child/@id

<强> demo

输出

red
red
blue