2015-07-10 46 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'所需的元素。

相关问题