2015-05-21 97 views
0

我想根据我的XML中的AddressID找到邮政编码。XPath根据兄弟情况找到兄弟属性

<Address City="Londong" County="Greater London" FlatNumber="" HouseNumber="702" PostCode="EH14 3HW" Street="" AddressID="0" isPrimary="1"/> 
<Address City="Braintree" County="Essex" FlatNumber="" HouseNumber="586" PostCode="CM79AB" Street="Blocking End" AddressID="1" isPrimary="0"/> 

我尝试不同的XPath语句,并没有得到一个值或得到空。我想说的,给我当AddressID = 1

我已经试过邮编如下:

//Address[AddressID = 1]@PostCode 
//Address[AddressID = 1]/@PostCode 
//Address[AddressID = 1 @PostCode] 
+0

仅供参考 - 如果事情是不打算成为一个浏览器,使用“代码示例中的可运行“,而不是”代码片段“。代码示例可以通过编辑器小部件访问。 –

+0

谢谢。我不熟悉使用哪一个。这有帮助。 – user3179585

+0

顺便说一句,通常当人们谈论XML中的兄弟姐妹时,它指的是彼此相邻的元素;挂在同一个元素上的属性实际上并没有定义好的顺序,所以很多兄弟相关的语义(跟随兄弟姐妹,前兄弟姐妹等)不适用。 –

回答

1

你AddressID是一个属性(同邮编),所以你需要两者都使用@

//Address[@AddressID="1"]/@PostCode 

你试图查询,//Address[AddressID = 1]/@PostCode,看起来这样的事情:

<Address PostCode="ABC"> <!-- PostCode is an attribute (has an @) --> 
    <AddressID>1</AddressID> <!-- AddressID is a child element (no @) --> 
</Address> 
+0

谢谢!那样做了。 – user3179585