如何解决XPath 命令为子元素和孙元素提供条件
我想在 Java 中使用 XPath 从 XML 文件中获取特定节点值
<country>
<countryName>India</countryName>
<city>
<name>Mumbai</name>
<hotel>
<hotelName>Marriott</hotelName>
<capacity>500</capacity>
</hotel>
<hotel>
<hotelName>ITC</hotelName>
<capacity>400</capacity>
</hotel>
</city>
<city>
<name>Bangalore</name>
<hotel>
<hotelName> ITC</hotelName>
<capacity>250</capacity>
</hotel>
</city>
</country>
<country>
<countryName>Australia</countryName>
<city>
<name>Sydney</name>
<hotel>
<hotelName>Marriott</hotelName>
<capacity>200</capacity>
</hotel>
</city>
</country>
现在我想要使用 xpath 命令来自特定国家/地区的 酒店 的容量。 条件是这样的—— 在**国家=印度,城市=孟买,酒店=万豪**
可能会有更多国家和城市的酒店名称相同。
我所做的是
//country[normalize-space(name)="India" and normalize-space(city/name)="Mumbai" and normalize-space(city/hotel)="Marriott"]/city/capacity/text()
但这为我提供了印度国内所有酒店容量的输出!
请帮忙命令,我不知道我哪里出错了或者我应该改变什么
解决方法
您方法中的谓词(方括号中的条件)是根据子/孙节点的存在选择一个国家/地区,然后选择该国家/地区内的所有城市/容量。如果您总是打算针对单个特定酒店,则将谓词与层次结构的每个级别相关联,例如:
//country[normalize-space(countryName)="India"]/city[normalize-space(name)="Mumbai"]/hotel[normalize-space(hotelName)="Marriott"]/capacity/text()
返回 500。这将为名为“印度”的国家/地区内名为“孟买”的城市中名为“万豪”的酒店选择容量文本。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。