解析XPath查询

时间:2017-01-23 17:02:52

标签: xpath

我想收到输出:

10.62.197.125, 10.62.197.126, 10.62.197.127.

我该如何实现? (请注意,由于客户限制,代码已被某种方式操纵)。

<output arrayType="ns2:aaa[20]" type="ns2:aaa_array">
  <item type="ns2:bbb">
    <ip_addr type="xsd:string">0a2ef556</ip_addr>
    <hostaddr type="xsd:string">10.62.197.125</hostaddr>
    <subnet_name type="xsd:string">Test</subnet_name>
    <pool_id type="xsd:string">0</pool_id>
  </item>
  <item type="ns2:aaa">
    <ip_addr type="xsd:string">0a3c3c33</ip_addr>
    <hostaddr type="xsd:string">10.62.197.126</hostaddr>
    <subnet_name type="xsd:string">Test</subnet_name>
    <pool_id type="xsd:string">0</pool_id>
  </item>
  <item type="ns2:aaa">
    <ip_addr type="xsd:string">0a3a72c4</ip_addr>
    <hostaddr type="xsd:string">10.62.197.127</hostaddr>
    <subnet_name type="xsd:string">Test</subnet_name>
    <pool_id type="xsd:string">0</pool_id>
  </item>
</output>

1 个答案:

答案 0 :(得分:1)

获取元素:
/*/item/hostaddr/text()

结果

10.62.197.125
10.62.197.126
10.62.197.127

获取字符串(由XPath 2.0 +支持):
string-join(/*/item/hostaddr/text(), ', ')

结果

10.62.197.125, 10.62.197.126, 10.62.197.127

这意味着:
在所有项元素中选择hostaddr元素中的文本。

<强>测试
您可以通过转到XPath测试器(如this),在选项1中粘贴XML,将表达式粘贴到XPath表达式字段并按下测试XPath按钮来测试。