鉴于以下XML:XML查询没有返回预期的结果
<?xml version="1.0" encoding="UTF-8"?>
<Accommodations>
<AccommodationSegment AccommodationCode="627|26234" AccommodationId="15390132" AccommodationName="blah" Availability="available" BasicAdultCost="180.16" BoardCode="SC" BookableByFAB="true" BrandName="blah" ClassCode="2*" Currency="GBP" EndDate="20170918" ItineraryId="si1068" MaxChildAge="17" NormalisedName="BLAH" NumNights="7" ResortId="558" ResortName="blah" StartDate="20170911" Supplier="TT2" SyndicatorRanking="100" Type="Apartments">
<AvailableBoardBasis>BB</AvailableBoardBasis>
<AvailableBoardBasis>HB</AvailableBoardBasis>
<AvailableBoardBasis>SC</AvailableBoardBasis>
<Address Address1="blah" Address2="blah" Address3="Tenerife" CityOrTown="Puerto de la Cruz" Country="ES" PostCode="34324" />
<TelephoneNumber>+34 922370565</TelephoneNumber>
<Description>blah blah blah blah blah blah blah blah blah blah blah blah
blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah</Description>
<GeoPosition Latitude="28.4129" Longitude="-16.5437" />
<DirectLink System="FABRIX">
<DirectLinkURL><![CDATA[https://ww9.website.com/deep_linking/deep_linking.html?rooms=1&journey=Hotels&checkinDate=11092017&duration=7&suppliers=TT2&accommodationId=15390132]]></DirectLinkURL>
</DirectLink>
<AccommodationUnits>
<AccommodationUnit AUID="H2" Code="2SC" MaxExtraChildren="0" MaxExtraInfants="0" MaxOccupancy="1" MinOccupancy="1" Name="Studio - Self catering" QuantityAvailable="9">
<RoomRate Amount="180.16" BoardBasis="SC" Currency="GBP" EndDate="20170918" RefundType="refundable" StartDate="20170911" />
</AccommodationUnit>
<AccommodationUnit AUID="H2" Code="2BB" MaxExtraChildren="0" MaxExtraInfants="0" MaxOccupancy="1" MinOccupancy="1" Name="Studio - Bed and Breakfast" QuantityAvailable="9">
<RoomRate Amount="216.91" BoardBasis="BB" Currency="GBP" EndDate="20170918" RefundType="refundable" StartDate="20170911" />
</AccommodationUnit>
<AccommodationUnit AUID="H2" Code="2HB" MaxExtraChildren="0" MaxExtraInfants="0" MaxOccupancy="1" MinOccupancy="1" Name="Studio - Half board" QuantityAvailable="9">
<RoomRate Amount="268.36" BoardBasis="HB" Currency="GBP" EndDate="20170918" RefundType="refundable" StartDate="20170911" />
</AccommodationUnit>
</AccommodationUnits>
</AccommodationSegment>
<AccommodationSegment AccommodationCode="627|26234" AccommodationId="15390132" AccommodationName="blah" Availability="available" BasicAdultCost="180.16" BoardCode="SC" BookableByFAB="true" BrandName="blah" ClassCode="2*" Currency="GBP" EndDate="20170918" ItineraryId="si1068" MaxChildAge="17" NormalisedName="BLAH" NumNights="7" ResortId="558" ResortName="blah" StartDate="20170911" Supplier="TT2" SyndicatorRanking="100" Type="Apartments">
<AvailableBoardBasis>BB</AvailableBoardBasis>
<AvailableBoardBasis>HB</AvailableBoardBasis>
<AvailableBoardBasis>SC</AvailableBoardBasis>
<Address Address1="blah" Address2="blah" Address3="Tenerife" CityOrTown="Puerto de la Cruz" Country="ES" PostCode="73737" />
<TelephoneNumber>0034 922384811</TelephoneNumber>
<Description>blah blah blah blah blah blah blah blah blah blah blah blah
blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah</Description>
<GeoPosition Latitude="28.4119" Longitude="-16.5473" />
<DirectLink System="FABRIX">
<DirectLinkURL><![CDATA[https://ww9.website.com/deep_linking/deep_linking.html?rooms=1&journey=Hotels&checkinDate=12092017&duration=7&suppliers=TT2&accommodationId=16271549]]></DirectLinkURL>
</DirectLink>
<AccommodationUnits>
<AccommodationUnit AUID="H4476" Code="4476BB" MaxExtraChildren="0" MaxExtraInfants="0" MaxOccupancy="1" MinOccupancy="1" Name="Double Room for Single Use - Bed and Breakfast" QuantityAvailable="9">
<RoomRate Amount="250.04" BoardBasis="BB" Currency="GBP" EndDate="20170919" RefundType="non_refundable" StartDate="20170912" />
</AccommodationUnit>
<AccommodationUnit AUID="H4476" Code="4476HB" MaxExtraChildren="0" MaxExtraInfants="0" MaxOccupancy="1" MinOccupancy="1" Name="Double Room for Single Use - Half board" QuantityAvailable="9">
<RoomRate Amount="276.97" BoardBasis="HB" Currency="GBP" EndDate="20170919" RefundType="non_refundable" StartDate="20170912" />
</AccommodationUnit>
<AccommodationUnit AUID="H4476" Code="4476FB" MaxExtraChildren="0" MaxExtraInfants="0" MaxOccupancy="1" MinOccupancy="1" Name="Double Room for Single Use - Full board" QuantityAvailable="9">
<RoomRate Amount="303.88" BoardBasis="FB" Currency="GBP" EndDate="20170919" RefundType="non_refundable" StartDate="20170912" />
</AccommodationUnit>
<AccommodationUnit AUID="H4476" Code="4476AI" MaxExtraChildren="0" MaxExtraInfants="0" MaxOccupancy="1" MinOccupancy="1" Name="Double Room for Single Use - All inclusive" QuantityAvailable="9">
<RoomRate Amount="317.34" BoardBasis="AI" Currency="GBP" EndDate="20170919" RefundType="non_refundable" StartDate="20170912" />
</AccommodationUnit>
</AccommodationUnits>
</AccommodationSegment>
</Accommodations>
而下面的XPath查询: - 包含 '退还'
(//*[local-name()="AccommodationSegment" and //*["RoomRate"][@RefundType="non_refundable"]])[1]
为什么查询返回第一个(酒店)房间,而不是第二家酒店,其中包含'non_refundable'酒店?查询有什么问题和/或有没有可用的查询?
你想要得到什么确切的输出的任何元素? – Andersson
我希望第一个包含不可退款的房间,其中xml中的属性为'RefundType'。使用这个工具:http://codebeautify.org/Xpath-Tester你会发现我的查询返回第一个,它包含'refundable',而不是我期望的 - 第一个包含non_refundable –
Steerpike
你确定你需要'AccommodationSegment',但不需要'AccommodationUnits'或'AccommodationUnit'?在提供的'xml'示例中只有一个'AccommodationSegment',它同时具有''和'' –
Andersson