开发者学堂课程【XML入门 :XPATH 简介】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/37/detail/831
XPATH 简介
一、使用 dom4j 支持 xpath 的操作
这时候需要一层一层点击,先汇到根节点,然后到下面的 p1,在 p1 里要一层一层从上到下依次解析。发现这里面只有三层,如果有一百层要写一百遍,那这种太复杂了。
所以 dom4j 提供了第四个操作 ——XPath,这个操作直接获取到某一个元素。在day06 里面资料里有一个 xpath,它就是一种书写形式或者一个表达式。里面有一个文档,提供了很多种语言。先看中文,调取实例来看,看前六个。
实例一
/AAA 表示第一层,第一层A就可以取到
/AAA/CCC 表示 AAA 层下面的 CCC
/AAA/DDD/BBB 表示 AAA 下面的 DDD 的 BBB 元素
实例二
//BBB 表示:和这个名称相同,只要名称是 BBB 都可以得到,不管在哪层。
//DDD/BBB 表示所有 DDD 下面的 BBB 都得到。
来到p1.xml怎么得到所有的 name 元素?
<person>
<p1 id1=”aaaa”>
<name>zhangsan</name>
<age>300</age>
<sex>nv</sex>
</p1>
<p1>
<name>lisi</name>
<age>30</age>
</p1>
</person>
直接//name,所有的 name 元素都可以得到就不需要一层层解析。
实例三
/AAA/CCC/DDD*表示 AAA 中的 CCC 中的 DDD 里面的所有元素。
/*/*/*/BBB 表示前三层下的 BBB 元素。
//*表示所有的元素。
实例四
/AAA/BBB[1]表示 AAA 元素里的第一个 BBB。
/AAA/BBB[last()]表示表示 AAA 元素里的最后一个 BBB。
实例五
//@id 表示只要标签上有 id 属性都可以得到。
//BBB[@id] 表示只要 BBB 上面有 id 属性都可以得到。
实例六
//BBB[@id='b1']表示元素名称是 BBB,在 BBB 元素里面有 id 属性,id 的值是 b1。
//BBB[@name='bbb'] 表示 BBB 下面有 name 属性,name 的值是 bbb。