1. 基本概念:
- 节点(Nodes): 在XPath中,XML文档中的所有内容都是节点。常见的节点类型包括元素节点、属性节点、文本节点、命名空间节点等。
- 路径(Paths): XPath使用路径来定位节点。路径由一系列的步骤组成,每个步骤都描述了如何从一个节点移动到另一个节点。例如,/bookstore/book/title 描述了从根节点开始,依次经过 bookstore、book、title 节点。
2. 基本语法:
- 节点选择:
- /:从根节点开始选择。
- //:选择匹配的节点,而不考虑其位置。
- .:当前节点。
- ..:父节点。
- 节点过滤:
- [@attribute='value']:选择具有特定属性值的节点。
- [position()]:选择特定位置的节点。
- 通配符:
- *:匹配任何元素节点。
- @*:匹配任何属性节点。
3. 谓词(Predicates):
谓词用于筛选节点,允许你指定更详细的条件。例如,/bookstore/book[price>20] 选择价格大于20的书籍节点。
4. 函数:
XPath具有一系列内置函数,可用于在选择和处理节点时执行各种操作。例如,string(), contains(), count(), sum() 等。
5. 示例:
考虑以下XML文档:
<bookstore>
<book category="fiction">
<title lang="en">Introduction to XPath</title>
<author>John Doe</author>
<price>29.95</price>
</book>
<book category="non-fiction">
<title lang="fr">XPath and You</title>
<author>Jane Smith</author>
<price>19.99</price>
</book>
</bookstore>
- 选择所有书籍的标题: /bookstore/book/title
- 选择价格大于20的书籍标题: /bookstore/book[price>20]/title
- 选择具有法语标题的书籍: /bookstore/book/title[@lang='fr']
6. 使用XPath的工具和库:
XPath可以在许多编程语言中使用,包括JavaScript、Python、Java等。常见的XML处理库,如lxml(Python)、XPathEvaluator(JavaScript)、javax.xml.xpath(Java),都支持XPath。
以上是XPath的一些基本概念和语法。要深入了解XPath,建议查阅XPath规范或相关的教程和文档。
转载请注明出处:http://www.pingtaimeng.com/article/detail/12181/XML