2014-11-20 140 views
0

我花了數小時尋找解決方案,但現在我需要您的幫助。可能你會開玩笑說我,但是......無論如何。 我想獲取的座標,也許一些其他信息,當xpath匹配的crtiteria值= bnb使用xpath和一些標準提取xml座標

我試過語法//數據/值['bnb']/ancestor ::點/座標[文本( )]沒有結果。

 <Placemark xmlns=""> 
    <name><![CDATA[Malcesine]]></name> 
    <Point> 
     <coordinates>10.8103913069,45.7645853643</coordinates> 
    </Point> 
    <ExtendedData> 
     <Data name="tournumber"> 
     <value>1</value> 
     </Data> 
     <Data name="guidename"> 
     <value>Lake Garda</value> 
     </Data> 
     <Data name="category"> 
     <value>numeration</value> 
     </Data> 
     <Data name="category"> 
     <value>bnb</value> 
     </Data> 
     <Data name="WayPointNumber"> 
     <value>3</value> 
     </Data> 
    </ExtendedData> 
    </Placemark> 
    <Placemark xmlns=""> 
    <name><![CDATA[Gelateria Cento per cento]]></name> 
    <Point> 
     <coordinates>10.8087927103,45.7659774682</coordinates> 
    </Point> 
    <ExtendedData> 
     <Data name="tournumber"> 
     <value>1</value> 
     </Data> 
     <Data name="guidename"> 
     <value>Lake Garda</value> 
     </Data> 
     <Data name="WayPointNumber"> 
     <value>3</value> 
     </Data> 
    </ExtendedData> 
    </Placemark> 

THX提前

回答

1

,而不是試圖去備份樹ancestor::,把謂詞Placemark ...

//Placemark[ExtendedData/Data/value='bnb']/Point/coordinates 

大部分的它更容易創建的時間直接到元素的路徑,然後添加謂詞進行過濾。所以你可以從//Placemark/Point/coordinates開始。然後將其縮小到PlacemarkExtendedData/Data/value等於bnb

+0

很酷!如何添加更多的標準://地標[ExtendedData/Data/value ='bnb'和@ name ='WayPointNumber']/Point/coordinates – happymapper 2014-11-20 17:06:36

+0

@happymapper - 是的,但要注意上下文。 'Placemark'沒有一個名爲'name'的屬性,但'Data'確實需要在'Data'上加一個謂詞。 – 2014-11-20 17:13:38

+0

謝謝你的建議 - 時間不多了,今天我會明天再試。 – happymapper 2014-11-20 17:21:34