首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XmlPath基于条件子属性在字符串列表中选择父属性列表

XmlPath基于条件子属性在字符串列表中选择父属性列表
EN

Stack Overflow用户
提问于 2018-07-01 16:02:13
回答 2查看 321关注 0票数 0

考虑到以下XML:

代码语言:javascript
复制
<Holiday ItineraryId="123456789" Country="ES" NumberOfNights="7" LeadInPricePerPassenger="447.3" FlightOnly="true" OneWayOnly="false" Currency="GBP" BookingChannel="WEB" PassengerIdRequired="false" PassengerIdMandatory="false" NationalityRequired="false" NationalityMandatory="false">
   <Flight OriginAirport="LGW" DestinationAirport="ALC" MultiLegOutboundFlight="true">
      <OutboundSubSegments DeparturePoint="LGW" DepartureDate="20180802" DepartureTime="0920" ArrivalPoint="OSL" ArrivalDate="20180802" ArrivalTime="1225" OperatingCarrier="DY" OperatedBy="Super Air Shuttle" FlightNumber="HY637" OriginAirportName="London Gatwick" DestinationAirportName="Oslo" />
   </Flight>
</Holiday>

<Holiday ItineraryId="9283873737" Country="ES" NumberOfNights="7" LeadInPricePerPassenger="447.3" FlightOnly="true" OneWayOnly="false" Currency="GBP" BookingChannel="WEB" PassengerIdRequired="false" PassengerIdMandatory="false" NationalityRequired="false" NationalityMandatory="false">
   <Flight OriginAirport="LGW" DestinationAirport="ALC" MultiLegOutboundFlight="true">
      <OutboundSubSegments DeparturePoint="LGW" DepartureDate="20180802" DepartureTime="0920" ArrivalPoint="OSL" ArrivalDate="20180802" ArrivalTime="1225" OperatingCarrier="DY" OperatedBy="Super Air Shuttle" FlightNumber="HY637" OriginAirportName="London Gatwick" DestinationAirportName="Oslo" />
   </Flight>
</Holiday>

<Holiday ItineraryId="894847463" Country="ES" NumberOfNights="7" LeadInPricePerPassenger="447.3" FlightOnly="true" OneWayOnly="false" Currency="GBP" BookingChannel="WEB" PassengerIdRequired="false" PassengerIdMandatory="false" NationalityRequired="false" NationalityMandatory="false">
   <Flight OriginAirport="LGW" DestinationAirport="ALC" MultiLegOutboundFlight="true">
      <OutboundSubSegments DeparturePoint="LGW" DepartureDate="20180802" DepartureTime="0920" ArrivalPoint="OSL" ArrivalDate="20180802" ArrivalTime="1225" OperatingCarrier="DY" OperatedBy="Super Air Shuttle" FlightNumber="HY637" OriginAirportName="London Gatwick" DestinationAirportName="Oslo" />
  </Flight>
</Holiday>

<Holiday ItineraryId="894847463" Country="ES" NumberOfNights="7" LeadInPricePerPassenger="447.3" FlightOnly="true" OneWayOnly="false" Currency="GBP" BookingChannel="WEB" PassengerIdRequired="false" PassengerIdMandatory="false" NationalityRequired="false" NationalityMandatory="false">
   <Flight OriginAirport="LGW" DestinationAirport="ALC" MultiLegOutboundFlight="false">
      <OutboundSubSegments DeparturePoint="LGW" DepartureDate="20180802" DepartureTime="0920" ArrivalPoint="OSL" ArrivalDate="20180802" ArrivalTime="1225" OperatingCarrier="DY" OperatedBy="Super Air Shuttle" FlightNumber="HY637" OriginAirportName="London Gatwick" DestinationAirportName="Oslo" />
  </Flight>
</Holiday>

如何在满足条件MultiLegOutboundFlight="true“的字符串列表中选择所有的行程I?

我试过:

代码语言:javascript
复制
allMultiLegPackages = response.xmlPath().getList("Holiday.Flight{it.@MultiLegOutboundFlight=='true'}//parent::Holiday");

...and成功地返回满足条件的节点列表。但是如何获得ItineraryId的攻击列表呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-01 17:06:41

希望这个片段能帮到你。

代码语言:javascript
复制
XmlPath xmlpath = new XmlPath(responseXML);
List<Node> holidayNodes = xmlpath.getList("Holidays.Holiday.findAll{it.Flight.@MultiLegOutboundFlight=='true'}");
List<String> itineraryList = new ArrayList<>();
for(Node node: holidayNodes){
itineraryList.add(node.getAttribute("ItineraryId"));
}
System.out.println(itineraryList);

您的XML响应似乎有多个根节点( Holiday )。我想我们应该只有一个根节点。在一个根节点Holidays中声明所有假日节点

票数 0
EN

Stack Overflow用户

发布于 2018-07-01 17:01:31

假设您的XmlPath表达式有效,我认为您只需要在其末尾添加"/@ItineraryId“.所以,就像:

代码语言:javascript
复制
allMultiLegPackages =
response.xmlPath().getList("Holiday.Flight{it.@MultiLegOutboundFlight=='true'}//parent::Holiday/@ItineraryId");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51124882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档