XPATH:如何选择只包含boy Child节点的Children节点?



我需要选择一个只包含男孩子节点的Children节点。

从这个XML:

<Parent>
<Name>Mary</Name>
<Sex>female</Sex>
<Children>
<Child>
<Name>Joe</Name>
<Sex>boy</Sex>
</Child>
<Child>
<Name>Harry</Name>
<Sex>boy</Sex>
</Child>
<Child>
<Name>Sue</Name>
<Sex>girl</Sex>
</Child>
<Child>
<Name>Connie</Name>
<Sex>girl</Sex>
</Child>
<Child>
<Name>Kim</Name>
<Sex>other</Sex>
</Child>
</Children>
</Parent>

我需要这个结果:

<Children>
<Child>
<Name>Joe</Name>
<Sex>boy</Sex>
</Child>
<Child>
<Name>Harry</Name>
<Sex>boy</Sex>
</Child>
</Children>

这个xpath为我提供了正确的子节点-但不是在子节点中。

//Children/Child[Sex='boy']

这个xpath为我提供了我想要的Children节点—但是其中包含了所有的Child节点—而不仅仅是男孩节点。

//Children[Child/Sex='boy']

可以用xpath完成吗?

XPath只能提供单个节点,而不是这样的XML

<Children>
<Child>
<Name>Joe</Name>
<Sex>boy</Sex>
</Child>
<Child>
<Name>Harry</Name>
<Sex>boy</Sex>
</Child>
</Children>

要接收您所请求的内容,您应该使用其他工具,而不是纯XPath。
模式详情见这里或这里

最新更新