Xpath用法总结

<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

扫描二维码关注公众号,回复: 4618871 查看本文章
//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")]    #这个只是举例,实际是找不到的

猜你喜欢

转载自blog.csdn.net/qq544649790/article/details/84322828
今日推荐