XPath学习:基本语法(三)
XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。
XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 同时被构建于 XPath 表达之上。
推荐一个挺不错的网站:http://www.zvon.org/xxl/XPathTutorial/General_chi/examples.html 里面有很不错的例子,下面的例子中红色字体表示使用对应语法获取的元素(或属性)。
上一篇学习XPath的谓语用来查找某个特定的节点或者包含某个指定的值的节点,本篇学习选择未知的XML元素和选择若干路径
1、星号 * 表示选择所有由星号之前的路径所定位的元素,*是通配符,表示该路径下的所有元素,也表示层次。
选择所有路径依附于/AAA/CCC/DDD的元素 语法:/AAA/CCC/DDD/*
<AAA>
<XXX>
<DDD>
<BBB/>
<BBB/>
<EEE/>
<FFF/>
</DDD>
</XXX>
<CCC>
<DDD>
<BBB/>
<BBB/>
<EEE/>
<FFF/>
</DDD>
</CCC>
<CCC>
<BBB>
<BBB>
<BBB/>
</BBB>
</BBB>
</CCC>
</AAA>
选择所有的有3个祖先元素的BBB元素,即在第四层的BBB元素 语法:/*/*/*/BBB
<AAA>
<XXX>
<DDD>
<BBB/>
<BBB/>
<EEE/>
<FFF/>
</DDD>
</XXX>
<CCC>
<DDD>
<BBB/>
<BBB/>
<EEE/>
<FFF/>
</DDD>
</CCC>
<CCC>
<BBB>
<BBB>
<BBB/>
</BBB>
</BBB>
</CCC>
</AAA>
选择所有元素 语法://*
<AAA><BBB/>
<BBB/>
<BBB/>
<BBB/>
</AAA>
2、“@*”匹配任何属性的节点,not(@*)匹配没有任何属性的节点。这里Xpath学习:基本语法(一)有例子。
3、“|”是多个路径选择的并集,可以利用“|”查找符合多个条件的节点。
获取所有的BBB元素和EEE元素 语法://BBB|//EEE
<AAA><XXX>
<DDD>
<BBB/>
<BBB/>
<EEE/>
<FFF/>
</DDD>
</XXX>
<CCC>
<DDD>
<BBB/>
<BBB/>
<EEE/>
<FFF/>
</DDD>
</CCC>
<CCC>
<BBB>
<BBB>
<BBB/>
</BBB>
</BBB>
</CCC>
</AAA>
获取AAA下XXX下的DDD的BBB元素和EEE元素 语法:/AAA/XXX/DDD/BBB|/AAA/XXX/DDD/EEE
<AAA>
<XXX>
<DDD>
<BBB/>
<BBB/>
<EEE/>
<FFF/>
</DDD>
</XXX>
<CCC>
<DDD>
<BBB/>
<BBB/>
<EEE/>
<FFF/>
</DDD>
</CCC>
<CCC>
<BBB>
<BBB>
<BBB/>
</BBB>
</BBB>
</CCC>
</AAA>
到此,基本介绍XPath的基本语法(选取节点,谓语,选取未知节点和选取若干节点),接下来学习XPath的轴。