在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档节点。
xml 实例
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--comments-->
<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" | (属性节点) |
en 、J K. Rowling | (文本) |
book | (命名空间) |
<!--comments--> | (注释) |
路径表达式
路径表达式 | 结果 |
---|---|
/bookstore/book[1] | 选取属于 bookstore 子元素的第一个 book 元素。 |
/bookstore/book[last()] | 选取属于 bookstore 子元素的最后一个 book 元素。 |
/bookstore/book[last()-1] | 选取属于 bookstore 子元素的倒数第二个 book 元素。 |
/bookstore/book[position() < 3] | 选取最前面的两个属于 bookstore 元素的子元素的 book 元素。 |
//title[@lang] | 选取所有拥有名为 lang 的属性的 title 元素。 |
//title[@lang=‘eng’] | 选取所有 title 元素,且这些元素拥有值为 eng 的 lang 属性。 |
//title[text()=‘hello’] | 选取所有 title 元素,且这些元素拥有值为 hello 的文本。 |
/bookstore/book[price>35.00] | 选取 bookstore 元素的所有 book 元素,且其中的 price 元素的值须大于 35.00。 |
/bookstore/book[price>35.00]/title | 选取 bookstore 元素中的 book 元素的所有 title 元素,且其中的 price 元素的值须大于 35.00。 |
更多信息,见 XPath 语法