使用 dom4j 处理 xml (2)
记录一些 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)的更多相关文章
- 使用dom4j读取xml连接数据库与之单例模式
使用dom4j读取xml ,加入jar包 dom4j-1.6.1.jar jaxen-1.1-beta-6.jar public class XmlConfigReader { //懒汉式,延迟加载 ...
- Dom4j把xml转换成Map(固定格式)
/** * 可解析list * * @param fileName * @return * @throws Exception */ @SuppressWarnings("unchecked ...
- 【dom4j xml】使用dom4j处理XML文件--测试过程遇到的问题
首先 关于dom4j的API,有如下: 当然 其中的实体引用有以下: 测试使用环境: 使用Maven搭建web环境,pom.xml文件配置如下: <project xmlns="ht ...
- java中采用dom4j解析xml文件
一.前言 在最近的开发中用到了dom4j来解析xml文件,以前听说过来解析xml文件的几种标准方式:但是从来的没有应用过来,所以可以在google中搜索dmo4j解析xml文件的方式,学习一下dom4 ...
- 转:在java中使用dom4j解析xml
JAVA 使用Dom4j 解析XML Java DOM4J Parser - Parse XML Document Dom4j下载及使用Dom4j读写XML简介 在java中使用dom4j解析xml ...
- Dom4j解析xml
public class Dom4jTest { // Dom4j解析xml // 因为所有的方法都需要Dom树 static Document document = null; static Ele ...
- 使用Dom4j进行XML解析
1 概述 在进行ESB集成项目中,使用到了很多系统的接口,这些接口传输的数据大部分都采用了XML的格式,这样在使用ESB开发服务时就需要对XML数据进行解析或拼接的操作,本文以项目中流程服务为例,讲 ...
- 使用dom4j解析XML文档
dom4j的包开源包,不属于JDK里面,在myeclipse中要单独导入在项目中,这里不累赘了 做这个过程,很慢,因为很多方法没用过不熟悉,自己得去查帮助文档,而且还得去试,因为没有中文版,英文翻译不 ...
- 【JAVA使用XPath、DOM4J解析XML文件,实现对XML文件的CRUD操作】
一.简介 1.使用XPath可以快速精确定位指定的节点,以实现对XML文件的CRUD操作. 2.去网上下载一个“XPath帮助文档”,以便于查看语法等详细信息,最好是那种有很多实例的那种. 3.学习X ...
- 用DOM4J解析XML文件案例
用DOM4J解析XML文件案例,由于DOM4J不像JAXP属于JAVASE里,所以如果要使用DOM4J,则必须额外引入jar包,如图:
随机推荐
- 【C语言程序】基因编码
输入一个长为n=2k(k≤8)01串s,按照"ABC编码规则"进行编码,ABC编码规则是: A //若s串全是0 T(s)= ...
- 排序算法的复习和总结[PHP实现]
对于PHP中对数组的元素进行排序,这个是很经常用到的,之前的项目中也有,而且对于几种排序我们都是用的是asort arsort 等PHP原生函数,没有自己去实现,所以就对一下的几个函数进行总结,这个 ...
- js高级4
1.Date 类 getDate()返回一个月中的某一天 1-31 getDay() 返回一周中的某一天0-6 getFullyear()返回四位数的年份 getMonth()返回月份 比实际情况小 ...
- Hibernate-day04
HIbernate中的HQL查询 Hibernate中的查询方式:1,使用HQL:使用hibernate提供的面向对象的查询语句;2,使用SQL:在hibernate中允许使用原生的SQL直接查询;3 ...
- linux --- Ansible篇
ansible背景 1.什么是ansible? ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优 ...
- 大规模微服务架构下的Service Mesh探索之路
小结: 1. 第一.二代Service Mesh meetup-slides/敖小剑-蚂蚁金服-大规模微服务架构下的Service Mesh探索之路.pdf https://github.com/se ...
- 第五周ip通信基础回顾
广播请求,单播响应,ARP IPV4,IP地址32位二进制代码分为8个位一组 路由器每一个接口都是一个网段 ,网段与网段区分看网络地址 同一段链路是同网段 直接广播:主机号全为1 受限广播:全为1 特 ...
- 2018-2019-2 20165236郭金涛《网络对抗》Exp1 PC平台逆向破解
2018-2019-2 20165236郭金涛<网络对抗>Exp1 PC平台逆向破解 一.实验内容 1.掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码(0.5分) 2.掌 ...
- mybatis 分页插件
博客地址http://www.jianshu.com/nb/5226994 引言 对于使用Mybatis时,最头痛的就是写分页,需要先写一个查询count的select语句,然后再写一个真正分页查询的 ...
- jmeter-PC注册遇到的问题与解决
2019-04-26问题: