正文

XPath语法2006-05-22 21:54:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/zzjcs1971/14564.html

分享到:

XPath语法 XPath使用路径表达式在XML文档中选择结点或结点集。 下面是一个XML例子,我们将用它来说明XPath语法: <?xml version="1.0" encoding="ISO-8859-1"?><bookstore><book>  <title lang="eng">Harry Potter</title>  <price>29.99</price></book><book>  <title lang="eng">Learning XML</title>  <price>39.95</price></book></bookstore> 一、选择结点 表达式                      说明 结点名                     选择当前结点的所有子结点 /                                从根结点开始 //                               从当前结点开始选择符合条件的结点 .                               选择当前的结点 ..                              选择当前结点的双亲 @                            选择属性 举例说明如下: 表达式                        说明 bookstore                    选择bookstore元素的所有子结点 /bookstore                   选择根元素bookstore bookstore/book           选择bookstore下的所有book子元素 //book                         选择文档中的所有book元素 bookstore//book          选择bookstore下的所有book子孙元素 //@lang                        选择所有名为lang的属性 二、谓词 谓词用于寻找特定的结点或一个包含特定值的结点。谓词包括在方括号中。 举例说明如下: 表达式    说明 /bookstore/book[1]   选择bookstore元素下的第一个book子元素 /bookstore/book[last()]  选择bookstore元素下的最后一个book子元素 /bookstore/book[last()-1] 选择bookstore元素下的最后一个book子元素,book子元素应是   bookstore下唯一的一个 /bookstore/book[position()<3] 选择bookstore元素下开始的两个book子元素 //title[@lang]   选择所有的包含属性名为lang的title元素 //title[@lang='eng']  选择所有的包含属性名为lang且属性值为eng的title元素 /bookstore/book[price>35.00] 选择bookstore元素下的所有包含值大于35.00的price元素的book子  元素 /bookstore/book[price>35.00]/title 选择bookstore元素下的所有包含值大于35.00的price元素 的book子元素下的title子元素 三、选择未知的结点 表达式           说明 *                     匹配任何的元素结点 @*                 匹配任何的属性结点 node()             匹配任何类型的结点 举例说明如下: 表达式              说明 /bookstore/*      选择bookstore元素下的所有子结点 //*                     选择文档中的所有元素 //title[@*]          选择所有的title元素不管其属性如何 四、多路径选择 通过有表达式中使用|操作符,你可以进行多路径选择。 示例如下: 表达式                           说明 //book/title | //book/price 选择所有book元素下的title和price子元素 //title | //price                   选择文档中的所有的title和price元素 /bookstore/book/title | //price 选择/bookstore/book/下的title子元素和文档中的所有price元素 五、XPath轴心 一个轴心定义了相对于当前结点的结点集,例表如下: 轴心名                  说明 ancestor                 选择当前结点的所有祖先 ancestor-or-self     选择当前结点及其所有祖先 attribute                 选择当前结点的所有属性 child                      选择当前结点的所有子女 descendant            选择当前结点的所有子孙 示例说明: 表达式   说明 child::book  选择当前结点的所有book子结点 attribute::lang  选择当前结点的lang属性 child::*  选择当前结点的所有子女 attribute::*  选择当前结点的所有属性 child::text()  选择当前结点的所有文本子结点 child::node()  选择当前结点的所有子结点 descendant::book 选择当前结点的所有子孙book ancestor::book  选择当前结点的所有祖先book ancestor-or-self::book 选择当前结点的所有祖先book,如果当前结点也是book,那么包含当前结点 child::*/child::price 选择当前结点的所有孙子结点price descendant-or-self 选择当前结点及其所有子孙 following  选择当前结点结束标记后的东西 following-sibling 选择当前结点后的所有同科 namespace  选择当前结点的所有名字空间结点 parent   选择当前结点的双亲 preceding  选择当前结点开始标记前的东西 preceding-sibling 选择当前结点前的所有同科 self   选择当前结点

阅读(6090) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册