使用[1]

时间:2015-12-10 13:47:11

标签: xml xpath namespaces

给出以下SOAP XML响应:

http://pastebin.com/f57T8ctD(太大而无法在此处显示)

如果我尝试使用下一个Xpath句子检索节点<ssr>

//*[name() = 'ssr'][1]

我得到的是下一个:

<ssr xmlns="http://xml.amadeus.com/PNRACC_14_1_1A">
  <type>CTCE</type>
  <status>HK</status>
  <quantity>1</quantity>
  <companyId>OU</companyId>
  <freeText>XXX//GMAIL.COM</freeText>
</ssr>
<ssr xmlns="http://xml.amadeus.com/PNRACC_14_1_1A">
  <type>CTCM</type>
  <status>HK</status>
  <quantity>1</quantity>
  <companyId>OU</companyId>
  <freeText>XXX/SI</freeText>
</ssr>

而不仅仅是我尝试使用查询选择的第一个。

是否有另一种方法可以选择指定节点号的不同<ssr>节点?

1 个答案:

答案 0 :(得分:2)

使用括号包装除索引之外的整个XPath:

(//*[name() = 'ssr'])[1]

请参阅以下帖子以获取解释:How to select specified node within Xpath node sets by index with Selenium?