基本概念
-
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
网友评论