• XPath常用定位节点元素语句总结


    将一个XML或HTML文档转换成了DOM树结构后,如何才能定位到特定的节点?XPath实现了这样的功能,它通过DOM树中节点的路径和属性来导航,通过XPath路径表达式可以选择DOM树中的nodes(节点)或是node-set(节点集)。

    XPath包含了数量超过100的内置函数。这些函数针对字符串值,数字值,日期和时间比较,节操作,顺序操作,布尔值,等

    解析用的java包

    Java 5 推出了 javax.xml.xpath 包,这是一个用于 XPath 文档查询的独立于 XML 对象模型的库。

    Xalan-Java http://xml.apache.org/xalan-j/

    常用函数

    xpath的常用函数主要包含节点集函数,字符串函数,布尔函数,数字函数,网上的资料较多,在此就不再累述,可参考以下资料:

    [a] XPath, XQuery, and XSLT Functions http://www.w3schools.com/xpath/xpath_functions.asp

    [b] XPath Functions http://www.caucho.com/resin-3.0/xml/xpath-fun.xtp

    [c] XPath Functions(MSDN) http://msdn2.microsoft.com/en-us/library/ms256138.aspx

    常用定位语句实例

    1. //NODE[not(@class)] 所有节点名为node,且不包含class属性的节点

    2. //NODE[@class and @id] 所有节点名为node,且同时包含class属性和id属性的节点

    3. //NODE[contains(text(),substring] 所有节点名为node,且其文本中包含substring的节点

    //A[contains(text(),\"下一页\")] 所有包含“下一页”字符串的超链接节点

    //A[contains(@title,"文章标题")] 所有其title属性中包含“文章标题”字符串的超链接节点

    4. //NODE[@id="myid"]/text() 节点名为node,且属性id为myid的节点的所有直接text子节点

    5. BOOK[author/degree] 所有包含author节点同时该author节点至少含有一个的degree孩子节点的book节点

    6. AUTHOR[.="Matthew Bob"] 所有值为“Matthew Bob”的author节点

    7. //*[count(BBB)=2] 所有包含两个BBB孩子节点的节点

    8. //*[count(*)=2] 所有包含两个孩子节点的节点

    9. //*[name()='BBB'] 所有名字为BBB的节点,等同于//BBB

    10. //*[starts-with(name(),'B')] 所有名字开头为字母B的节点

    11. //*[contains(name(),'C')] 所有名字中包含字母C的节点

    12. //*[string-length(name()) = 3] 名字长度为3个字母的节点

    13. //CCC | //BBB 所有CCC节点或BBB节点

    14. /child::AAA 等价于/AAA

    15. //CCC/descendant::* 所有以CCC为其祖先的节点

    16. //DDD/parent::* DDD节点的所有父节点

    17. //BBB[position() mod 2 = 0] 偶数位置的BBB节点

    18. AUTHOR[not(last-name = "Bob")] 所有不包含元素last-name的值为Bob的节点

    19. P/text()[2] 当前上下文节点中的P节点的第二个文本节点

    20. ancestor::BOOK[1] 离当前上下文节点最近的book祖先节点

    21. //A[text()="next"] 锚文本内容等于next的A节点

     

     

    最后推荐一款在Firefox中用的XPath插件:

    XPath Checker

    https://addons.mozilla.org/en-US/firefox/addon/1095

    这个插件可以方便查看网页中任意元素的XPath路径,但其自动生成的XPath路径通常不是最简路径。

     

    参考资料

    [1]XPath Examples. http://msdn2.microsoft.com/en-us/library/ms256086.aspx

    [2]XPath Tutorial http://www.zvon.org/xxl/XPathTutorial/Output/example1.html

    [3]XPath介绍 http://www.xml.org.cn/dispbbs.asp?boardID=14&ID=35493

    [4]XPath reference http://msdn2.microsoft.com/en-us/library/ms256115.aspx

    [5]XML Path Language (XPath)Version 1.0 http://www.w3.org/TR/xpath

    [6]XPath Tutorial http://www.w3schools.com/xpath/default.asp

  • 相关阅读:
    matlab2016b和c# .net4.0混合编程
    有限元入门
    math.net 拟合
    excel 错误提示以及其他基础知识
    excel的小bug
    Servlet体系及方法
    Servlet学习笔记
    HTTP协议
    Tomcat
    反射
  • 原文地址:https://www.cnblogs.com/huqingyu/p/1670073.html
Copyright © 2020-2023  润新知