记录一些 xpath 的常规用法,备忘。

 //3、XPath 了解(用于在xml中选取元素,类似 jquery 选择器)
//3.1 路径
Node node1 = root.selectSingleNode("/person");
System.out.println(node1.asXML()); //3.2 “@” 选取节点属性(取属性一般用selectSingleNode)
Node node4 = root.selectSingleNode("//person").selectSingleNode("@name");
System.out.println(node4.asXML()); //3.3 “[]” 既可以用作过滤,也可以作下标使用
List<Node> nodes1 = root.selectNodes("//person[@cls!='04']"); //从当前路径找node名为person并且cls属性值不是04的节点
for(Node tmpNode : nodes1)
{
System.out.println(tmpNode.asXML());
}
          //3.4 小结:
       -------- 路径 -------------------
// "//person" “//”表示从当前节点的位置开始(忽略中间路径),去找后代节点中有无person节点
// "//persons//a" 两个 //
// "../.." 父节点的父节点
// "/person" 从根节点开始找(不忽略中间路径,要一级一级往下找)。。不仅找不到,还影响后续代码的执行。
--------- 过滤 和 运算符 ------
// "//person[a]" //从当前路径找, node名为person,并且 含有a子节点
// "//person[@id]" //从当前路径找 , node名为person, 并且有id属性
// "//person[@age>=24]" = != > >= < <= (但是不支持*=、$=、^=、~=等)
// "//person[@age>=24 and @age<30]" 与
// "//person[@age>=24][@age<30]" 作用同上
// "//person[@age>26 or @age<20]" 或
// "//person[not(@age<25)]" 非
// "//persons/dog | //persons/person" 返回两个list的并集("//persons/dog and //persons/person"达不到这样的效果)
      ---------- 下标 ------------
            // "//person[2]" 取匹配节点中的第2个节点(下标从1开始)
            // "//person[last()-1]" 取倒数第二个       ----------- 通配符 -----------
            // "//person/@name" 匹配所有person节点的name
            // "//persons/person" 匹配persons下的所有person子节点
            // "//persons/*" 通配符,匹配persons下的所有子节点 ----------- 函数 -----------------
            // "/node()" 匹配根节点下的所有节点(包含文本节点和注释节点)(要注意与"/*"区别)
            // "//dog/text()" 匹配dog节点下的文本
            // "//child::node()" 从当前位置开始,递归所有后代节点(包含文本节点和注释节点)
            // "//child::*" 从当前位置开始,递归所有后代节点       ----------- 有命名空间的 ---------------     
            // "//namespace::*" 输出所有的namespace,有重复!
            // "//*[local-name()='person']" 匹配local-name 为person 的节点,如 ??:person
            // "//mt:person" 带上命名空间就好了
            // "/cumt:classes/mc:persons/mt:person"

note: 后代节点和子节点 不是一回事,后代节点还包括子节点的子节点的……

使用 dom4j 处理 xml (2)的更多相关文章

  1. 使用dom4j读取xml连接数据库与之单例模式

    使用dom4j读取xml ,加入jar包 dom4j-1.6.1.jar jaxen-1.1-beta-6.jar public class XmlConfigReader { //懒汉式,延迟加载 ...

  2. Dom4j把xml转换成Map(固定格式)

    /** * 可解析list * * @param fileName * @return * @throws Exception */ @SuppressWarnings("unchecked ...

  3. 【dom4j xml】使用dom4j处理XML文件--测试过程遇到的问题

    首先 关于dom4j的API,有如下: 当然  其中的实体引用有以下: 测试使用环境: 使用Maven搭建web环境,pom.xml文件配置如下: <project xmlns="ht ...

  4. java中采用dom4j解析xml文件

    一.前言 在最近的开发中用到了dom4j来解析xml文件,以前听说过来解析xml文件的几种标准方式:但是从来的没有应用过来,所以可以在google中搜索dmo4j解析xml文件的方式,学习一下dom4 ...

  5. 转:在java中使用dom4j解析xml

    JAVA 使用Dom4j 解析XML Java DOM4J Parser - Parse XML Document Dom4j下载及使用Dom4j读写XML简介 在java中使用dom4j解析xml ...

  6. Dom4j解析xml

    public class Dom4jTest { // Dom4j解析xml // 因为所有的方法都需要Dom树 static Document document = null; static Ele ...

  7. 使用Dom4j进行XML解析

    1  概述 在进行ESB集成项目中,使用到了很多系统的接口,这些接口传输的数据大部分都采用了XML的格式,这样在使用ESB开发服务时就需要对XML数据进行解析或拼接的操作,本文以项目中流程服务为例,讲 ...

  8. 使用dom4j解析XML文档

    dom4j的包开源包,不属于JDK里面,在myeclipse中要单独导入在项目中,这里不累赘了 做这个过程,很慢,因为很多方法没用过不熟悉,自己得去查帮助文档,而且还得去试,因为没有中文版,英文翻译不 ...

  9. 【JAVA使用XPath、DOM4J解析XML文件,实现对XML文件的CRUD操作】

    一.简介 1.使用XPath可以快速精确定位指定的节点,以实现对XML文件的CRUD操作. 2.去网上下载一个“XPath帮助文档”,以便于查看语法等详细信息,最好是那种有很多实例的那种. 3.学习X ...

  10. 用DOM4J解析XML文件案例

    用DOM4J解析XML文件案例,由于DOM4J不像JAXP属于JAVASE里,所以如果要使用DOM4J,则必须额外引入jar包,如图:

随机推荐

  1. Ubuntu12.04 LTS 32位 安装ns-2.35

    ubuntu12.04lts 32-bit默认采用gcc 4.6和g++4.6,而ns的最新版本ns 2.3.5也采用了相同到版本,所以这方面不会有版本不同到问题 收回上面这句话..../valida ...

  2. centos7安装nginx-1.13.6 新手入门,图文解析

    系统环境 操作系统:64位CentOS Linux release 7.2.1511 (Core) 安装nginx依赖包 [root@localhost ~]# yum install gcc-c++ ...

  3. (80)Wangdao.com第十六天_JavaScript Object 对象的相关方法

    Object 对象的相关方法 Object.getPrototypeOf() 返回参数对象的原型. 这是获取某对象的原型对象的标准方法. var F = function () {}; var f = ...

  4. 23 创建ArcMap启动日志

    在ArcMap的启动过程中,我们可以看到软件的界面上分别会显示[初始化许可……].[初始化应用……].[加载文档……]字样,当ArcMap打开出现问题时,我们可以根据以上文字来判断出现错误的情况,还有 ...

  5. 总结:极光推送java服务端(1)

    遇到的问题: 1.怎么用极光推送 2.极光推送发送失败报错 返回{ } 3.透传和推送区别以及怎么设置 我的解决方案: 问题1.极光推送类里面有不同的方法,需要发给那些人就调用相应的方法.有安卓.io ...

  6. swust oj 982

    输出利用二叉树存储的普通树的度 1000(ms) 10000(kb) 2619 / 5991 普通树可转换成相应的二叉树(该二叉树的根结点一定缺少右儿子),反之亦然.故而可以根据相应的转换方法去统计某 ...

  7. Maven的安装、配置及使用入门+maven安装报错:JAVA_HOME【申明:来源于网络】

    Maven的安装.配置及使用入门+maven安装报错:JAVA_HOME[申明:来源于网络] Maven的安装.配置及使用入门:http://www.cnblogs.com/dcba1112/arch ...

  8. F#周报2019年第15期

    新闻 Hedgehog新站点 Bolero 0.4发布,增加远程认证 FsToolkit.ErrorHandling与Cvdm.ErrorHandling合并了 F#里的3D图形编程与游戏开发 有趣的 ...

  9. Jmeter-----图形扩展监控

    Jmeter----图形扩展监控 监听器中插件安装成功如下图: 安装步骤: 1.  下载JMeterPlugins-Extras与JMeterPlugins-Standard,解压缩后在他们各自的\l ...

  10. Easyui datagrid 数据表格 表格列头右键菜单选择展示列 JS

    Easyui ,数据表格加载出来以后,在表格头右键,会有显示筛选的功能: 如图: 然后可以取消勾选,就变成下面这个样子: 功能的实现是通过重写了easyui 的 $.fn.datagrid.defau ...