我正在努力学习XPath,并且发现它很困难,因为我正在谷歌搜索所有这些。 这是我的XML:
<?xml version="1.0" encoding="utf-8"?>
<details>
<signature id="sig1">
<name>mr. Barry Smith</name>
<telephone type="fixed">01234 123456</telephone>
<telephone type="mobile">071234562</telephone>
</signature>
<signature id="sig2">
<name>mr. Harry Smith</name>
<telephone type="fixed">01234 123456</telephone>
</signature>
</details>
我怎样才能找到拥有手机的人的姓名,我可以获得或者两者兼而有之。
我一直在尝试这样的事情:
staffdetails/signature/telephone[@type='mobile']name
另外,是否有使用XPAth的参考指南,所以我可以很容易地找出我想要的任何查询?使用在线教程我已经找到了XPath如何工作的解释,但是这些例子还不够。
谢谢!
答案 0 :(得分:7)
此处无需使用following-sibling::
或嵌套谓词。就这样做:
/details/signature[telephone/@type = 'mobile']/name
答案 1 :(得分:1)
这应该有效:
//signature/name[following-sibling::telephone[@type='mobile']]
读作:
选择
name
父母和signature
兄弟telephone
=type
的任何mobile
。
关于参考,我实际上从the examples in the spec中学到了很多东西!