仅选择与父名称xpath 1.0匹配的一个子项



所以我有这个XMl文件要使用XPATH进行过滤。

`<Root>
<Program Name="PGM_Name1">
<ProgFileName>200</ProgFileName>
<ProgName>PGM_Name</ProgName>
<NcJob>
<Name>Job1</Name>
<NcJob>
</Program>
<Program Name="PGM_Name">
<ProgFileName>200</ProgFileName>
<ProgName>PGM_Name1</ProgName>
<NcJob>
<Name>Job2</Name>
<NcJob>
</Program>
<Program Name="PGM_Name2">
<ProgFileName>201</ProgFileName>
<ProgName>PGM_Name2</ProgName>
<NcJob>
<Name>Job3</Name>
<NcJob>
</Program>
</Root>`

我想要的是从每个<Program>父元素中只选择一个元素<Name>。困难在于如何在每个<Program>元素上匹配<ProgFileName>

我需要使用的Context节点是<Name>所以我不能做任何类似于//NcJob/Name != ./preceding::Program/NcJob/Name的事情

这里有人帮忙吗?

感谢您抽出时间!

您可以使用以下XPath表达式来尊重您所声明的条件:

//Name[preceding::ProgName[1]/text()=ancestor::Program[1]/@Name]

输出:Job3

相关内容

  • 没有找到相关文章

最新更新