如何使用xpath检索xml值?

时间:2015-07-10 01:56:26

标签: java excel

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

输出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下面尝试但没有成功。有谁能建议我。

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

1 个答案:

答案 0 :(得分:1)

根据您是否想要获取有关根节点的节点或只是找到任何匹配的节点,您可以使用类似的内容......

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

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

当然你也可以使用......

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

如果Code必须完全匹配。

以上内容将在文档中的任何位置找到Units节点的所有Rider个节点。如果排名很重要,则需要将*/替换为/Riders/

现在,如果您想同时找到ALSPAFO,您可以使用类似的内容......

*/Rider[Code[text() = 'ALSP' or text() = 'AFO']]/Units
相关问题