发布于2026-07-22 阅读(0)
扫一扫,手机访问
XPath是什么?简单说,就是用来选择XML文件中节点的一套方法。这里的“节点”(node),可以理解为XML文件的最小构成单元,总共分七种:元素节点、属性节点、文本节点、名称空间节点、处理命令节点、注释节点和根节点。XPath能处理这所有七种,但日常工作中打交道最多的,还是元素节点(element)。所以,下面提到的“节点”和“元素”,基本可以当成一回事。
XPath通过“路径表达式”来选择节点,形式上跟传统文件系统路径非常像。
/step/step/...。step/step。nodename(节点名称):选择该节点的所有子节点。/:选择根节点。//:选择文档中任意位置的某个节点。@:选择某个属性。先看一个具体的XML文档,后面所有例子都基于它:
Harry Potter 29.99 Learning XML 39.95
【例1】bookstore:选取 bookstore 元素的所有子节点。
【例2】/bookstore:选取根节点bookstore(绝对路径)。
【例3】bookstore/book:选取所有属于 bookstore 的子元素的 book 元素(相对路径)。
【例4】//book:选择所有 book 子元素,不管它们在文档中的位置。
【例5】bookstore//book:选择所有属于 bookstore 元素的后代的 book 元素,不管它们位于 bookstore 之下的什么位置。
【例6】//@lang:选取所有名为 lang 的属性。
所谓“谓语条件”,就是对路径表达式附加的筛选条件。所有条件都写在方括号[]中,进一步限定节点范围。
【例7】/bookstore/book[1]:选择bookstore的第一个book子元素。
【例8】/bookstore/book[last()]:选择bookstore的最后一个book子元素。
【例9】/bookstore/book[last()-1]:选择bookstore的倒数第二个book子元素。
【例10】/bookstore/book[position()<3]:选择bookstore的前两个book子元素。
【例11】//title[@lang]:选择所有具有lang属性的title节点。
【例12】//title[@lang='eng']:选择所有lang属性的值等于"eng"的title节点。
【例13】/bookstore/book[price]:选择bookstore的book子元素,且被选中的book元素必须带有price子元素。
【例14】/bookstore/book[price>35.00]:选择bookstore的book子元素,且被选中的book元素的price子元素值必须大于35。
【例15】/bookstore/book[price>35.00]/title:在例14的结果集中,选择title子元素。
【例16】/bookstore/book/price[.>35.00]:选择值大于35的/bookstore/book的price子元素。
*:匹配任何元素节点。@*:匹配任何属性值。node():匹配任何类型的节点。【例17】//*:选择文档中的所有元素节点。
【例18】/*/*:选择所有第二层的元素节点。
【例19】/bookstore/*:选择bookstore的所有元素子节点。
【例20】//title[@*]:选择所有带有属性的title元素。
用竖线|连接多个并列的路径。
【例21】//book/title | //book/price:同时选择book元素的title子元素和price子元素。
上一篇:XML和YAML的使用方法
下一篇:简单了解XML 树结构
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8