2015-07-31 4 views
0

Я написал выражение ниже для получения информации из нижеприведенного XML-файла, но возвращаемые результаты являются нулевыми и индекс не связан.доступ к существующим атрибутам возвращает null

пожалуйста, дайте мне знать, как извлечь данные из этого элемента:

<ele k="maxspeed:zone" v="60"/> 

выражение:

"//node[@lat='53.0337395'] [@lon='8.8489255']/following-sibling/following- 
sibling::ele[1]/@v" 

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"/> 
<node id="25779119" lat="53.0337395" lon="8.8489255"/> 
<tag k="maxspeed" v="30"/> 
<tag k="maxspeed:zone" v="yes"/> 
<ele k="maxspeed:zone" v="60"/> 
<node id="25779114" lat="53.334062" lon="8.841545"/> 
<node id="25779117" lat="53.338904" lon="8.84614"/> 
<node id="25779110" lat="53.33795" lon="8.489255"/> 
<tag k="maxspeed" v="32"/> 
<tag k="maxspeed:zone" v="no"/> 
</osm> 
+3

попробовать '//node[@lat='53.0337395 '] [@ долгота =' 8,8489255' ]/следующий-родственный :: Эле [1]/@ V'. в вашем xpath второе сегрегация 'next-sibling' рассматривалась как имя элемента, таким образом возвращая нулевой результат –

ответ

2

Вы почти там - тебе нужно добавить ::tag[1] к первому following-sibling, как это:

"//node[@lat='53.0337395'] [@lon='8.8489255']/following-sibling::tag[1]/following-sibling::ele[1]/@v" 

Это извлекает Attribute='v="60"'

Смежные вопросы