2015-07-10 20 views
2

之間鏈接,元素「標籤」包含速度信息。我面臨問題是,前兩個元素「節點」如何在以下張貼的XML文件中的兩個不同元素

<node id="25779111" lat="53.0334062" lon="8.8461545"/> 
<node id="25779112" lat="53.0338904" lon="8.846314"/> 

它們的速度信息被封閉在即時程序兩個元件「標籤」

<tag k="maxspeed" v="30"/> 
<tag k="maxspeed:zone" v="yes"/> 

,後兩個元件「節點「:

<node id="25779114" lat="53.334062" lon="8.841545"/> 
<node id="25779117" lat="53.038904" lon="8.84614"/> 

他們的速度信息被封閉在直接訴訟兩種元素的‘標籤’

<tag k="maxspeed" v="32"/> 
<tag k="maxspeed:zone" v="yes"/> 

我想要做的是,給定「緯度」屬性的信息,應該返回速度信息。例如,如果輸入是lat =「53.0334062」或lat =「53.0338904」 ,則返回的值應該是v =「30」。如果輸入是要麼LAT = 「53.334062」 或LAT = 「53.038904返回的值應爲V =」 32"

我怎樣才能achive即使用XPath

XML

<?xml version='1.0' encoding='utf-8' ?> 
<osm> 
<node id="25779111" lat="53.0334062" lon="8.8461545"/> 
<node id="25779112" lat="53.0338904" lon="8.846314"/> 
<tag k="maxspeed" v="30"/> 
<tag k="maxspeed:zone" v="yes"/> 
<node id="25779114" lat="53.334062" lon="8.841545"/> 
<node id="25779117" lat="53.038904" lon="8.84614"/> 
<tag k="maxspeed" v="32"/> 
<tag k="maxspeed:zone" v="yes"/> 
</osm> 

回答

1

使用本

//node[@lat="53.0334062"]/following-sibling::tag[1]/@v 

//node[@lat="**yourinput**"]/following-sibling::tag[1]/@v 

解釋:

node[@lat="53.0334062"]符合您的條件。然後,following-sibling獲取節點元素中的所有子節點,在該元素內,它將選擇第一個元素tag,實際上,這是獲取屬性'V'所需的元素。

相關問題