2012-11-28 64 views
1

我想通過XPATH完成的任務是檢索名稱爲Poly 1的地標的座標。可能是一個非常簡單的問題,但是我對XPATH的瞭解有限,而且我還在名稱和座標之間存在額外的標記(「多邊形」)XPATH:如何選擇不同級別的節點?

正如你所看到的,可以有一個或多個元素,我想檢索它們。

<?xml version="1.0" encoding="UTF-8"?> 
<kml> 
<Document> 
     <Placemark> 
      <name>Poly 1</name> 
      <Polygon> 
         <coordinates> 
          -58.40844625779582,-34.60295278618136,0 
         </coordinates> 
         <coordinates> 
          -68.40844625779582,-77.60295278618136,0 
         </coordinates> 

      </Polygon> 
     </Placemark> 
     <Placemark> 
      <name>Poly 2</name> 
      <Polygon> 
         <coordinates> 
          -58.40414334150432,-34.59992445476809,0 
         </coordinates> 
      </Polygon> 
     </Placemark> 
</Document> 
</kml> 

回答

0

這個XPath表達式會得到您的座標節點

//Placemark[./name[text()='Poly 1']]//coordinates 

這是它如何工作的:

  • //Placemark選擇所有標標籤
  • //Placemark[./name]選擇所有標標籤用名稱兒童標籤
  • //Placemark[./name[text()='Poly 1']]選擇帶名稱子標記的所有地標標記,其中名稱標記包含文本Poly 1
+0

非常感謝你,我也在我的xml文檔上工作:) – user1860193

+0

不客氣。請不要忘記接受回答你的問題的答案。 –