<root xmlns:foo="http://www.foo.org/" xmlns:bar="http://www.bar.org">
<employees>
<employee id="1">Johnny Dapp</employee>
<employee id="2">Al Pacino</employee>
<employee id="3">Robert De Niro</employee>
</employees>
<foo:companies>
<foo:company id="4">Microsoft</foo:company>
<foo:company id="5">IBM</foo:company>
<foo:company id="6">Apple</foo:company>
<foo:company id="7">Oracle</foo:company>
</foo:companies>
</root>
1、选择文档节点
/
Document='<root xmlns:bar="http://www.bar.org" xmlns:foo="http://www.foo.org/">
<employees>
<employee id="1">Johnny Dapp</employee>
<employee id="2">Al Pacino</employee>
<employee id="3">Robert De Niro</employee>
</employees>
<foo:companies>
<foo:company id="4">Microsoft</foo:company>
<foo:company id="5">IBM</foo:company>
<foo:company id="6">Apple</foo:company>
<foo:company id="7">Oracle</foo:company>
</foo:companies>
</root>
'
2、选择根元素
/root
Element='<root xmlns:bar="http://www.bar.org" xmlns:foo="http://www.foo.org/">
<employees>
<employee id="1">Johnny Dapp</employee>
<employee id="2">Al Pacino</employee>
<employee id="3">Robert De Niro</employee>
</employees>
<foo:companies>
<foo:company id="4">Microsoft</foo:company>
<foo:company id="5">IBM</foo:company>
<foo:company id="6">Apple</foo:company>
<foo:company id="7">Oracle</foo:company>
</foo:companies>
</root>'
3、选择所有employees下的employee
/root/employees/employee
Element='<employee id="1">Johnny Dapp</employee>'
Element='<employee id="2">Al Pacino</employee>'
Element='<employee id="3">Robert De Niro</employee>'
4、选择所有foo:companies
//foo:companies
Element='<foo:companies xmlns:foo="http://www.foo.org/">
<foo:company id="4">Microsoft</foo:company>
<foo:company id="5">IBM</foo:company>
<foo:company id="6">Apple</foo:company>
<foo:company id="7">Oracle</foo:company>
</foo:companies>'
5、选择所有foo:company属性元素ID
//foo:companies/@id
Attribute='id=4'
Attribute='id=5'
Attribute='id=6'
Attribute='id=7'
6、选择第二个employee的text
//employee[2]/text()
Text='Al Pacino'
7、选择最后一个employee
//employee[last()]
Element='<employee id="3">Robert De Niro</employee>'
8、选择第一个和第二个employee的text
//employee[position() <= 2]
Element='<employee id="1">Johnny Dapp</employee>'
Element='<employee id="2">Al Pacino</employee>'
9、选择所有包含属性ID的employee
//employee[@id]
Element='<employee id="1">Johnny Dapp</employee>'
Element='<employee id="2">Al Pacino</employee>'
Element='<employee id="3">Robert De Niro</employee>'
10、选择属性ID=3的employee
//employee[@id=3]
Element='<employee id="3">Robert De Niro</employee>'
11、选择属性ID<=3的employee
//employee[@id<=3]
Element='<employee id="1">Johnny Dapp</employee>'
Element='<employee id="2">Al Pacino</employee>'
Element='<employee id="3">Robert De Niro</employee>'
12、选择companies下的所有元素
//foo:companies/*
Element='<foo:company xmlns:foo="http://www.foo.org/" id="4">Microsoft</foo:company>'
Element='<foo:company xmlns:foo="http://www.foo.org/" id="5">IBM</foo:company>'
Element='<foo:company xmlns:foo="http://www.foo.org/" id="6">Apple</foo:company>'
Element='<foo:company xmlns:foo="http://www.foo.org/" id="7">Oracle</foo:company>'
13、选择文档中所有元素
//*
Element='<root xmlns:bar="http://www.bar.org" xmlns:foo="http://www.foo.org/">
<employees>
<employee id="1">Johnny Dapp</employee>
<employee id="2">Al Pacino</employee>
<employee id="3">Robert De Niro</employee>
</employees>
<foo:companies>
<foo:company id="4">Microsoft</foo:company>
<foo:company id="5">IBM</foo:company>
<foo:company id="6">Apple</foo:company>
<foo:company id="7">Oracle</foo:company>
</foo:companies>
</root>'
Element='<employees>
<employee id="1">Johnny Dapp</employee>
<employee id="2">Al Pacino</employee>
<employee id="3">Robert De Niro</employee>
</employees>'
Element='<employee id="1">Johnny Dapp</employee>'
14、选择所有employee和foo:company
//employee|//foo:company
Element='<employee id="1">Johnny Dapp</employee>'
Element='<employee id="2">Al Pacino</employee>'
Element='<employee id="3">Robert De Niro</employee>'
Element='<foo:company xmlns:foo="http://www.foo.org/" id="4">Microsoft</foo:company>'
Element='<foo:company xmlns:foo="http://www.foo.org/" id="5">IBM</foo:company>'
Element='<foo:company xmlns:foo="http://www.foo.org/" id="6">Apple</foo:company>'
Element='<foo:company xmlns:foo="http://www.foo.org/" id="7">Oracle</foo:company>'
15、选择第一个employee的id的值(数值表示)
number(//employee[1]/@id)
Double='1'
16、选择第一个employee的id的值(字符串表示)
string(//employee[1]/@id)
String='1'
17、第一个employee的文本长度
string-length(//employee[1]/text())
Int64='11'
18、Select the local name of the first ‘company’ element, i.e. without the namespace
local-name(//foo:company[1])
String='company'
19、计算foo:company的数量
count(//foo:company)
Int64='4'
20、计算所有company内ID属性值的总和
sum(//foo:company/@id)
Double='22'
其他用法:
打开百度,按下F12打开开发者工具,左侧标签选择Elements
按Ctrl+F进入搜索,就可以练习Xpath啦!
21、contains
//*[contains(@name,"wd")]
定位了百度的输入框
21、start-with 和 endwith(个人用的时候不行?不知道为什么)
//*[start-with(@name,"wd")] #这个只是举例,实际是找不到的