基本概念
-
Node
<?xml version="1.0" encoding="ISO-8859-1"?> <bookstore> //文档节点 <book> <title lang="en">Harry Potter</title> <author>J K. Rowling</author> //元素节点 <year>2005</year> <price>29.99</price> </book> </bookstore><bookstore>(文档节点)
<author>J K. Rowling</author>(元素节点)
lang="en"(属性节点) -
基本值 (或称原子值,Atomic value)
- J K. Rowling 就是基本值
-
节点关系
-
Parent 每个元素都有一个父
- book 元素是 title、author、year 以及 price 元素的父:
-
Children 元素节点可能有0个一个或多个子。
-
同胞(Sibling)
- title、author、year 以及 price 元素都是同胞:
-
先辈(Ancestor):某节点的父、父的父,等等。
- title 元素的先辈是 book 元素和 bookstore 元素
-
XPath语法
<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book>
<title lang="eng">Harry Potter</title>
<price>29.99</price>
</book>
<book>
<title lang="eng">Learning XML</title>
<price>39.95</price>
</book>
</bookstore>
-
nodename 获取所有节点的子节点
jiXML?.xPath("book")
-
/ 从根节点选取
-
jiXML?.xPath("/bookstore")选取根元素 bookstore。
-
-
// 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。
jiXML?.xPath("//title")-
bookstore//book选择属于 bookstore 元素的后代的所有 book 元素
-
@ 选取属性
jiXML?.xPath("//@lang")
谓词
-
选择已知节点
- /bookstore/book[1]
- /bookstore/book[last()]
- /bookstore/book[last()-1]
- /bookstore/book[position()<3]
- //title[@lang]
- //title[@lang='eng']
- /bookstore/book[price>35.00]
- /bookstore/book[price>35.00]/title
-
选择位置节点
-
*匹配任何元素节点。-
/bookstore/*: 选取 bookstore 元素的所有子元素。 -
//*选取文档中所有元素
-
-
@*匹配任何属性节点-
//title[@*]: 选取所有带有属性的 title 元素。
-
-
-
取出若干路径 : 通过在路径表达式中使用“|”运算符,您可以选取若干个路径
- //book/title | //book/price
- //title | //price











网友评论