• XML和Xpath定位小结


    1.1 XML简介
    典型的XML文档是由XML文档首部和XML文档主体构成的。
    XML文档首部:声明包含<? ?>标签之中。例如:
    <?xml version="1.0" encoding="UTF-8" ?>
    XML文档主体,文档中的数据是通过树形结构进行组织的,一个标签引出一个元素节点,元素开始标签中可以指定属性节点,也可以包含子元素和文本内容,也可以什么也没有而成为一个空元素。
    1、一个格式正确的XML文档必须由一个且仅由一个顶节元素组成。将没有根元素的XML文档称为XML片段。
    2、正确处理特殊字符。使用CDATA段:
    <?xml versoin="1.0" encoding="UTF-8" ?>
    <root>
        <compare><![CDATA[ %$#<> ]]></compare>
    </root>


    1.2 Xpath语言
    Xpath将xml的文档结构视为一个树形结构,元素、属性、文本、注释以及处理指令都是这个树形结构上的节点,对于xml文档中元素、属性、文本、注释以及处理指令的访问实际上是按顺序遍历这棵树,使用Xpath的路径表示法,可以定位到XML文档中的一个节点或者节点集合。
    在Xpath中,可以使用相关标识来定位元素以及其属性,这些标识符关键字主要有:child、self、parent、descendant、attribute等。
    child为默认标识符,self表示当前节点,parent表示上一级节点。
    descendant表示当前子孙节点,attribute表示当前节点的属性。
    绝对路径的Xpath表示
    绝对路径是从根节点到目标节点所经历的路径。
    1、元素节点的访问:
    /child::Config/child::Department
    可以简化:
    /Config/Department
    2、属性节点的访问
    /child::Config/child::Department/attribute::id
    可以简化:
    /Config/Department/@id
    3、文本节点访问
    可以直接使用“//”来表示,例如“.//”表示当前路径下的文本内容。
    4、子孙节点的访问
    可以通过元素节点,但是离根元素太长,可以使用子孙节点表示:
    /child::class/descendant::Name
    可以简化:
    /class//Name
    5、任意节点的访问
    /child::Config/child::Department/child::*
    可以简写:
    /Config/Department/*
    相对路径的Xpath表示:
    parent::Director/@id 简写 ../@id
    self::Director/Name 简写 ./Name

    1.3 Xpath的元素定位条件
    在xml中,也可以根据筛选条件返回指定节点集
    1、根据属性值筛选节点集
    可以使用下面的表示来定位class元素下所有的Director子元素:
    /class/Director
    但是需要定位具有属性id的Director时:
    /class/Director[@id]
    当需要具体确定属性数值时:
    /class/Director[@id='1001']
    2、根据或表达式筛选节点集
    当需要对多个具有不同名称节点进行处理,可以使用|表达式,例如需要定位Director下的Name或者Age,二者任意一个度可以:
    /class/Director/Name|Age

  • 相关阅读:
    java后台svg转成png
    Itext2.0.8 和freemarker导出pdf
    使用freemarker生成word、html时图片显示问题
    ITEXT5 Font 'd:SIMSUN.TTC' with 'Identity-H' is not recognized.
    IntelliJ Idea 2017 免费激活方法
    MySQL 索引
    怎样使用nat和桥接方式解决虚拟机联网问题
    【Linux】NAT模式下关于主机ping不通虚拟机的问题
    同一台服务器(电脑)运行多个Tomcat
    [shell基础]——cut命令
  • 原文地址:https://www.cnblogs.com/lmfeng/p/2913890.html
Copyright © 2020-2023  润新知