热门:网页模板.net视频教程JQueryMVCjsonExtJs源码示例三级联动JQuery菜单
您现在的位置:.Net中文社区>> XML编程>>正文内容

XPath学习:基本语法(二)

发布时间:2010年05月05日点击数: 佚名

 上一篇学习XPath 使用路径表达式在 XML 文档中选取节点。斜线”/”是从根节点选择,双斜线”//”从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置,点”.”选取当前节点,两点”..”选取当前节点的父节点,“@”为选取属性。

     谓语在XPath是重要的一部分,谓语用来查找某个特定的节点或者包含某个指定的值的节点。谓语被嵌在方括号中。

本篇主要学习XPath的谓语,更复杂的谓语结合其他XPath函数使用和选择未知的XML元素和选择若干路径。

1、选择AAA下的第一个BBB元素 语法:/AAA/BBB[1]

  1. <AAA>  
  2.      <BBB/>  
  3.      <BBB/>  
  4.      <BBB/>  
  5.      <BBB/>  
  6.    </AAA> 

2、选择AAA下的最后一个BBB元素 语法:/AAA/BBB[last()]

  1. <AAA>  
  2.      <BBB/>  
  3.      <BBB/>  
  4.      <BBB/>  
  5.      <BBB/>  
  6.    </AAA> 

3、选择AAA下的倒数第二个BBB元素 语法:/AAA/BBB[last()-1]

  1. <AAA>  
  2.      <BBB/>  
  3.      <BBB/>  
  4.      <BBB/>  
  5.      <BBB/>  
  6.    </AAA> 

4、选择AAA下的前面两个BBB元素 语法:/AAA/BBB[position()<3]

  1. <AAA>  
  2.      <BBB/>  
  3.      <BBB/>  
  4.      <BBB/>  
  5.      <BBB/>  
  6.    </AAA> 

5、获取AAA下的BBB下的有s属性的CCC元素 语法:/AAA/BBB/CCC[@s]

  1. <AAA>  
  2.      <BBB>  
  3.           <CCC s = "1"/>  
  4.           <CCC s = "2"/>  
  5.           <CCC s = "3"/>  
  6.           <CCC s = "4"/>  
  7.           <CCC s = "5"/>  
  8.           <CCC r = "a"/>  
  9.      </BBB>  
  10.      <CCC>  
  11.           <BBB r = "a"/>  
  12.           <BBB r = "b"/>  
  13.           <BBB r = "c"/>  
  14.      </CCC>  
  15.      <BBB/>  
  16.      <BBB/>  
  17.   </AAA> 

6、选取所有 bookstore 元素的 book 元素,且其中的 price 元素的值须大于 35.00。 语法:bookstore/book[price>35.00]

  1. <bookstore>  
  2.      <book> 
  3.        <title land="eng">Book1</title> 
  4.        <price>29.99</tilte> 
  5.      </book>  
  6.      <book> 
  7.        <title land="eng">Book2</title> 
  8.        <price>39.55</tilte> 
  9.      </book>  
  10.    </bookstore> 

 7、选取所有 bookstore 元素中的 book 元素的 title 元素,且其中的 price 元素的值须大于 35.00. 语法:/bookstore/book[price>35.00]/title

  1. <bookstore>  
  2.      <book> 
  3.        <title land="eng">Book1</title> 
  4.        <price>29.99</tilte> 
  5.      </book>  
  6.      <book> 
  7.        <title land="eng">Book2</title> 
  8.        <price>39.55</tilte> 
  9.      </book>  
  10.    </bookstore> 

1、星号 * 表示选择所有由星号之前的路径所定位的元素,*是通配符,表示该路径下的所有元素,也表示层次。

      选择所有路径依附于/AAA/CCC/DDD的元素 语法:/AAA/CCC/DDD/*

  1. <AAA>   
  2.      <XXX>   
  3.           <DDD>   
  4.                <BBB/>   
  5.                <BBB/>   
  6.                <EEE/>   
  7.                <FFF/>   
  8.           </DDD>   
  9.      </XXX>   
  10.      <CCC>   
  11.           <DDD>   
  12.                <BBB/>   
  13.                <BBB/>   
  14.                <EEE/>   
  15.                <FFF/>   
  16.           </DDD>   
  17.      </CCC>   
  18.      <CCC>   
  19.           <BBB>   
  20.                <BBB>   
  21.                     <BBB/>   
  22.                </BBB>   
  23.           </BBB>   
  24.      </CCC>   
  25.    </AAA> 

选择所有的有3个祖先元素的BBB元素,即在第四层的BBB元素 语法:/*/*/*/BBB

  1. <AAA>   
  2.      <XXX>   
  3.           <DDD>   
  4.                <BBB/>   
  5.                <BBB/>   
  6.                <EEE/>   
  7.                <FFF/>   
  8.           </DDD>   
  9.      </XXX>   
  10.      <CCC>   
  11.           <DDD>   
  12.                <BBB/>   
  13.                <BBB/>   
  14.                <EEE/>   
  15.                <FFF/>   
  16.           </DDD>   
  17.      </CCC>   
  18.      <CCC>   
  19.           <BBB>   
  20.                <BBB>   
  21.                     <BBB/>   
  22.                </BBB>   
  23.           </BBB>   
  24.      </CCC>   
  25.    </AAA> 

 选择所有元素 语法://*

  1. <AAA>   
  2.      <BBB/>   
  3.      <BBB/>   
  4.      <BBB/>   
  5.      <BBB/>   
  6.    </AAA> 

 2、“@*”匹配任何属性的节点,not(@*)匹配没有任何属性的节点。这里Xpath学习:基本语法有例子。
     3、“|”是多个路径选择的并集,可以利用“|”查找符合多个条件的节点。
     获取所有的BBB元素和EEE元素 语法://BBB|//EEE

  1. <AAA>   
  2.       <XXX>   
  3.           <DDD>   
  4.                <BBB/>   
  5.                <BBB/>   
  6.                <EEE/>   
  7.                <FFF/>   
  8.           </DDD>   
  9.      </XXX>   
  10.      <CCC>   
  11.           <DDD>   
  12.                <BBB/>   
  13.                <BBB/>   
  14.                <EEE/>   
  15.                <FFF/>   
  16.           </DDD>   
  17.      </CCC>   
  18.      <CCC>   
  19.           <BBB>   
  20.                <BBB>   
  21.                     <BBB/>   
  22.                </BBB>   
  23.           </BBB>   
  24.      </CCC>   
  25. </AAA> 

获取AAA下XXX下的DDD的BBB元素和EEE元素 语法:/AAA/XXX/DDD/BBB|/AAA/XXX/DDD/EEE

  1. <AAA>   
  2.      <XXX>   
  3.           <DDD>   
  4.                <BBB/>   
  5.                <BBB/>   
  6.                <EEE/>   
  7.                <FFF/>   
  8.           </DDD>   
  9.      </XXX>   
  10.      <CCC>   
  11.           <DDD>   
  12.                <BBB/>   
  13.                <BBB/>   
  14.                <EEE/>   
  15.                <FFF/>   
  16.           </DDD>   
  17.      </CCC>   
  18.      <CCC>   
  19.           <BBB>   
  20.                <BBB>   
  21.                     <BBB/>   
  22.                </BBB>   
  23.           </BBB>   
  24.      </CCC>   
  25. </AAA> 

到此,基本介绍XPath的基本语法(选取节点,谓语,选取未知节点和选取若干节点),接下来学习XPath的轴。

本站热点业务

更多模板/案例展示

热门推荐

关于我们 | 联系我们 | 团队日志 | 网站地图 | 网站合作