2016-09-20 13 views
1

私は、次のXML持っている:私はしかし、longFreetextノードが'CAR'が含まれている場合にのみ関連要素に値が含まれている場合、要素のXPath?

originDestinationDetails/itineraryInfo/travelProduct/boardpointDetail/cityCode

からcityCodeを返したい

<originDestinationDetails> 
    <originDestination></originDestination> 
    <itineraryInfo> 
     <elementManagementItinerary> 
     <reference> 
      <qualifier>ST</qualifier> 
      <number>1</number> 
     </reference> 
     <segmentName>RU</segmentName> 
     <lineNumber>2</lineNumber> 
     </elementManagementItinerary> 
     <travelProduct> 
     <product> 
      <depDate>201116</depDate> 
     </product> 
     <boardpointDetail> 
      <cityCode>CWB</cityCode> 
     </boardpointDetail> 
     <companyDetail> 
      <identification>1A</identification> 
     </companyDetail> 
     </travelProduct> 
     <itineraryMessageAction> 
     <business> 
      <function>32</function> 
     </business> 
     </itineraryMessageAction> 
     <relatedProduct> 
     <quantity>1</quantity> 
     <status>HK</status> 
     </relatedProduct> 
     <itineraryFreetext> 
     <freetextDetail> 
      <subjectQualifier>3</subjectQualifier> 
     </freetextDetail> 
     <longFreetext>-CAR/HERTZ/PUP-20NOV-0700/RT-22NOV-1800/VT-ICAR/CF-125456/SI-NVS</longFreetext> 

を。

私は数時間これをしてきましたが、さまざまな試みをしました'contains'。ちょうどそれを働かせることはできません。どんな助けでも大歓迎です!

+0

xpathで述語を試しましたか? http://www.w3schools.com/xsl/xpath_syntax.asp –

+0

btwあなたは誤ってXMLを切り捨てた可能性があります。欠落している終了タグを生成します。ここであなたのXMLの検証を試みました。 http://www.freeformatter.com/xpath-tester.html http://www.xmlvalidation.com/index.php?id=1&L=0 –

答えて

1

このXPathの、

/originDestinationDetails 
    /itineraryInfo[contains(itineraryFreetext/longFreetext, 'CAR')] 
    /travelProduct/boardpointDetail/cityCode 

は、その文字列値の文字列が含まれている"CAR"longFreetextを持ってitineraryInfo要素でのみcityCode要素を選択します。

+0

パーフェクト!本当にありがとう。 – user6854598

関連する問題