XPath 使用路径表达式在 XML 文档中选取节点
参考资料
XPath 详细介绍
XPath(XML Path Language)是一种用于在 XML 文档中定位节点的查询语言。它通过路径表达式选择 XML 文档中的节点或节点集。
基本概念
节点(Node):XML 文档中的元素、属性、文本等。
路径表达式:用于指定节点位置的表达式。
轴(Axis):定义与当前节点的关系。
谓语(Predicate):用于过滤节点。
路径表达式语法
/
:从根节点开始。//
:从当前节点开始递归搜索。.
:当前节点。..
:父节点。@
:选择属性。
常用表达式
选择节点
bookstore
:选择所有 bookstore 节点。/bookstore
:选择根元素 bookstore。bookstore/book
:选择 bookstore 的子元素 book。//book
:选择所有 book 节点。选择属性
//@lang
:选择所有名为 lang 的属性。//book[@lang]
:选择所有带有 lang 属性的 book 节点。谓语(过滤)
/bookstore/book[1]
:选择第一个 book 元素。/bookstore/book[last()]
:选择最后一个 book 元素。/bookstore/book[price>35]
:选择 price 大于 35 的 book 元素。通配符
*
:匹配任何元素节点。@*
:匹配任何属性节点。轴(Axis)
child::book
:选择当前节点的 book 子节点。attribute::lang
:选择当前节点的 lang 属性。ancestor::book
:选择当前节点的 book 祖先节点。
示例 XML 文档
<bookstore> <book category="cooking"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <price>30.00</price> </book> <book category="children"> <title lang="en">Harry Potter</title> <author>J.K. Rowling</author> <price>29.99</price> </book> </bookstore>
示例 XPath 表达式
选择所有 book 节点:
//book
选择第一个 book 节点的 title:
/bookstore/book[1]/title
选择价格大于 29 的 book 节点:
//book[price>29]
选择 lang 属性为 "en" 的 title 节点:
//title[@lang='en']
选择所有 book 节点的 price 子节点:
//book/price
选择 bookstore 的所有子节点:
/bookstore/*
选择所有具有 category 属性的 book 节点:
//book[@category]
选择第二个 book 节点的 author:
/bookstore/book[2]/author
用法说明
XPath 通常用于 XSLT、XQuery 和其他 XML 处理技术中。
在编程语言(如 Python、Java)中,可以使用库(如 lxml、javax.xml.xpath)执行 XPath 查询。
XPath 表达式区分大小写。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。