当前位置:编程学习 > C#/ASP.NET >>

XPath语法在C#中使用XPath示例

 

XPath可以快速定位到Xml中的节点或者属性。XPath语法很简单,但是强大够用,它也是使用xslt的基础知识。

示例Xml:

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

<pets>

  <cat color="black" weight="10">

    <price>100</price>

    <desc>this is a black cat</desc>

  </cat>

  <cat color="white" weight="9">

    <price>80</price>

    <desc>this is a white cat</desc>

  </cat>

  <cat color="yellow" weight="15">

    <price>80</price>

    <desc>this is a yellow cat</desc>

  </cat>

 

 

  <dog color="black" weight="10">

    <price>100</price>

    <desc>this is a black dog</desc>

  </dog>

  <dog color="white" weight="9">

    <price>80</price>

    <desc>this is a white dog</desc>

  </dog>

  <dog color="yellow" weight="15">

    <price>80</price>

    <desc>this is a yellow dog</desc>

  </dog>

</pets>

XPath的语法:

1. XPath中的符号

符号

说明

示例

示例说明

/

表示从根节点开始选择

/pets

选择根节点pets

表示节点和子节点之间的间隔符

/pets/dog

选择pets节点下的dog节点

//xx

表示从整个xml文档中查找,而不考虑当前节点位置

//price

选择文档中所有的price节点

.

单个英文半角句点表示选择当前节点

/pets/.

选择pets节点

..

双点,表示选择父节点

/pets/dog[0]/..

表示pets节点,也就是第一个dog节点的父节点

@xx

表示选择属性

//dog/@color

表示选择所有dog节点的color属性集合

[…]

中括号表示选择条件,括号内为条件

//dog[@color=’white’]

所有color为white的dog节点

//dog[/price<100]

所有price字节点值小于100的dog节点

中括号内数字为节点索引,类似c#等语言中的数组,数组下标是从1开始的

//dog[1]

第1个dog节点

//dog[last()]

最后一个dog节点,last()是xPath内置函数

|

单竖杠表示合并节点结合

//dog[@color=’white’] | //cat[@color=’white’]

color属性为white的dog节点和color属性为white的cat节点

*

星号表示任何名字的节点或者属性

//dog/*

表示dog节点的所有子节点

//dog/@*

表示dog节点的所有属性节点

2. XPath数学运算符

+   加号表示加

-    表示数字相减

*    表示乘以

div  表示除以,这里数学上的除号/已经被用作节点之间分隔符了

mod     表示取余

3. XPath逻辑运算符

=   等于,相当于c#中的==

!=  不等于

>   大于

>=大于等于

<   小于

<=小于等于

and并且与关系

or   或者或关系

4.XPath Axes 从字面翻译这个是XPath轴的意思,但根据我的理解这个翻译成XPath节点关系运算关键字更合适,就是一组关键字加上::双冒号表示和当

补充:软件开发 , C# ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,