XPath

 XPath即为XML路径语言,它是一种用来确定XML标准通用标记语言的子集)文档中某部分位置的语言。XPath基于XML的树状结构,有不同类型的节点,包括元素节点,属性节点和文本节点,提供在数据结构树中找寻节点的能力。

<?xml version="1.0" encoding="UTF-8"?>

<bookstore>

<book category="COOKING">
<title lang="en" color="#f0f0f0">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>

<book category="CHILDREN">
<title lang="en" color="#000000">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>

<book category="WEB">
<title lang="en" color="#000000">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>

<book category="WEB">
<title lang="en"  color="#ededed">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>

</bookstore>

 

表达式描述示例
/从根节点开始

* xml示例中 bookstore 是根节点 

 

* 获取根节点下的所有子节点

        - /bookstore

 

//从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。

* 查找 book 节点

         - /bookstores/book (正常方式)

         - //book(使用 // 直接取)

 

* 查找 book 节点中的 title

         - /bookstore/book/title 或 //title  或  //book/title

 

//book [num | last() | last() - num | position()<num]

* num: 选取第num个book节点

 

* last(): 选取最后一个book节点

 

* last() - num: 选取倒数第 num + 1 的book节点

 

*  position()<num: 选取前 num - 1 个 book 节点

* 选取第一个 book 节点

        - //book [1]

 

* 选取最后一个book节点

        - //book[last()]

 

* 选取倒数第二个book节点

        - //book[last() - 1] (last() 是最后一个 减一后就是第二个)

 

* 选取前3个book节点

         - //book[position() < 4]

@选取属性

* 选取属性名称是 lang 的属性值

         - //@lang

 

* 选取所有拥有名为 lang 的属性的 title 元素

         - //title[@lang]

 

* 选取 color 属性值是 #000000 的,所有 title 节点

        - //title[@color="#000000"]

 

* 选取 price 值大于等于 30 的所有 book 节点

         - //book[price >= 30]

 

* 选取 price 大于等于 30 的 book 的子节点 title

        - //book[price >= 30]/title

*、@*

通配符:来选取未知的 XML 元素

 

* ‘*’ :  匹配任何元素节点

 

* @* : 匹配任何属性节点

 

* 选取 bookstore 元素的所有子元素

        - /bookstore/*

 

* 选取文档中的所有元素

         - //*

 

* 选取所有带有属性的 title 节点

         - //title[@*]

|使用 | 可以选取多个路径

* 选取 book 节点下的 title 和 price 节点

        - //book/title | //book/price

 

* 选取所有 title 和 price 节点

         - //title | //price

contains模糊匹配(包含)

* 获取 category 的值包含 ‘WE’ 的  book 节点

         - //book[contains(@category,'WE')]

 

* 获取 category 的值中包含 ‘E’  的  book 节点

        - //book[contains(@category,'*E')]

text()获取标签中的文本

* 获取author中的文本

        - //book/author/text()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值