美文网首页Python
Xpath使用规则

Xpath使用规则

作者: 一曲广陵散 | 来源:发表于2017-03-11 15:58 被阅读297次

    引用
    维基百科

    一,概述

    XPath 是XML路径语言(xml path language),是一种用来确定XML文档中某部分位置的语言
    XPath 是基于XML的树状结构,提供在数据结构树中找寻节点的能力
    起初XPath 的提出初衷是将其作为一个通用的,介于XPointer和XSL间的语法模型
    但是XPath很快被开发者采用来当做小型查询语言

    二,表示法

    最常见的XPath表达式是路径表达式
    从一个XML节点(当前的上下文节点)到另一个节点,或者一组节点的书面步骤顺序
    这些步骤以 /字符分开,每一步有三个构成部分:
    轴描述,用最直接的方式接近目标节点
    节点测试,用于筛选节点位置和名称
    节点描述,用于筛选节点的属性和子节点的特征

    一般情况下,我们使用简写后的语法,虽然完整的轴描述是一种更加贴近人类语言,
    利用自然语言的单词和语法书写的描述方式,但是相对比较啰嗦

    2.1 简写后的语法

    最简单的XPath是 /A/B/C
    这里选择所有符合规矩的C节点,C节点必须是B的子节点B/CB节点是A节点的子节点
    A是这个XML文档的根节点(/A
    此时的这种描述法类似于磁盘中的文件的路径,从盘符开始顺着一级一级的目录最终找到文件
    下面的例子,包含了所有构成成分A//B/*[1]
    此时选择的元素是,在B节点下的第一个节点(B/*[1]),不论节点的名称如何(*),
    B节点必须出现在A节点中,不论和A节点之间相隔几层节点(//B
    与此同时A节点还必须是当前节点的子节点(A,前面没有/)

    2.2 啰嗦的语法

    在未缩写的语法中,上面的例子可以写为
    /child::A/child::B/child::C
    child::A/descendant-or-self::B/child::node()[1]
    在XPath的每个步骤中,通过完整的轴描述进行明确的指定,然后使用::,后面跟着节点测试的内容

    三,轴描述语法

    轴描述元表示XML文件分支树表达式的浏览方向,这些坐标包括全名和缩写语法

    关于使用attribute 坐标简写语法的一个范例
    //a/@href在文件树里面任何地方的元素下选择了一个叫 href的属性
    self坐标最通常与术语同用,参考现行选定节点
    h3[.='see also']在现行上下文选取了叫h3的元素,该元素的文字内容是see also

    四,节点测试

    节点测试包括特定节点名或者更加一般的表达式
    至于XML里命名空间前缀gs已经定义的文件,//gs:enquiry将找到所有在命名空间里
    enquiry的节点
    comment()寻找XML注释节点,例如``
    text()寻找某点的文字类型,例如hello<k>hello</k>
    processing-instruction()寻找XML处理指令如<?php echo $a; ?>
    这个例子中,符合processing-instruction('php')会返回值
    node()寻找所有点

    五,节点描述

    节点描述为一个逻辑真假表达式,任何真假判断表达式都可以在节点后方括号中

    相关文章

      网友评论

        本文标题:Xpath使用规则

        本文链接:https://www.haomeiwen.com/subject/mgwagttx.html