如何使用xpath检索xml值?

我的情景:我可能会得到不同的输出,如下所示。我想检索“单位”标记值取决于代码标记。

输出1:

<Riders> <Rider> <Name>ALSP</Name> <Code>ALSP</Code> <Units>3</Units> </Rider> <Rider> <Name>Individual</Name> <Code>Select Type of Coverage</Code> <OptionCode>Individual</OptionCode> <IsFeature>true</IsFeature> </Rider> </Riders> 

输出2:

 <Riders> <Rider> <Name>AFO</Name> <Code>AFO</Code> <Units>6</Units> </Rider> <Rider> <Name>Individual</Name> <Code>Select Type of Coverage</Code> <OptionCode>Individual</OptionCode> <IsFeature>true</IsFeature> </Rider> </Riders> 

我已经尝试了下面的xpath,但没有解决。 任何人都可以build议我

 /Riders/Rider/Code[text()[contains(.,'AFO')] or text() [contains(.,'ALSP')]]/Units 

根据您是否想要获取与根相关的节点或只是find任何匹配的节点,您可以使用类似…

 */Rider[Code[contains(.,'ALSP')]]/Units 

这将返回属于任何Rider节点的所有Units节点,其中有一个Code节点,其文本包含ALSP

当然你也可以用…

 */Rider[Code[text() = 'ALSP']]/Units 

如果Code必须完全匹配。

以上将find文档中任何位置的Rider节点的所有Units节点。 如果位置很重要,则需要将*/replace为/Riders/

现在,如果你想findALSPAFO ,你可以使用像…

 */Rider[Code[text() = 'ALSP' or text() = 'AFO']]/Units