Dom4j完整教程详解

转自: https://blog.csdn.net/qq_41860497/article/details/84339091 

 

目录

1、DOM4J简介

2、XML文档操作1

      2.1、读取XML文档:

      2.2、获取根节点

      2.3、. 新增一个节点以及其下的子节点与数据

      2.4、 写入XML文件

      2. 5、 遍历xml节点

      2.6、创建xml文件

      2.7、修改节点属性

      2.8、删除节点

2、XML文档操作2

       2.1、Document对象相关

          1、读取XML文件,获得document对象.

          2、解析XML形式的文本,得到document对象.

          3、主动创建document对象.

       2.2、节点相关

          1、获取文档的根节点.

          2、取得某节点的单个子节点.

          3.取得节点的文字

          4.取得某节点下指定名称的所有节点并进行遍历.

          5.对某节点下的所有子节点进行遍历.

          6.在某节点下添加子节点.

          7.设置节点文字.

          8.删除某节点.

          9.添加一个CDATA节点.

       2.3、属性相关.

          1.取得节点的指定的属性

          2.取得属性的文字

          3.遍历某节点的所有属性

          4.设置某节点的属性和文字.

          5.设置属性的文字

          6.删除某属性

      2.4、将文档写入XML文件.

          1.文档中全为英文,不设置编码,直接写入.

          2.文档中含有中文,设置编码格式再写入.

      2.5、字符串与XML的转换

         1.将字符串转化为XML

         2.将文档或节点的XML转化为字符串.

   3、dom4j的事件处理模型涉及的类和接口:

      3.1、类:SAXReader

      3.2、接口ElementHandler

      3.3、Element类

      3.4、类DocumentHelper

4、通过xpath查找指定的节点

       4.1、 xpath语法

          1、选取节点

          2、谓语(Predicates)

          3、选取未知节点

          4、选取若干路径

          5、XPath 轴

          6、路径

          7、XPath 运算符

 

1、DOM4J简介

    DOM4J是 dom4j.org 出品的一个开源 XML 解析包。DOM4J应用于 Java 平台,采用了 Java 集合框架并完全支持 DOM,SAX 和 JAXP。

    DOM4J 使用起来非常简单。只要你了解基本的 XML-DOM 模型,就能使用。

    Dom:把整个文档作为一个对象。

  DOM4J 最大的特色是使用大量的接口。它的主要接口都在org.dom4j里面定义:

Attribute

定义了 XML 的属性。

Branch

指能够包含子节点的节点。如XML元素(Element)和文档(Docuemnts)定义了一个公共的行为

CDATA

定义了 XML CDATA 区域

CharacterData

是一个标识接口,标识基于字符的节点。如CDATA,Comment, Text.

Comment

定义了 XML 注释的行为

Document

定义了XML 文档

DocumentType

定义 XML DOCTYPE 声明

Element

定义XML 元素

ElementHandler

定义了Element 对象的处理器

ElementPath

被 ElementHandler 使用,用于取得当前正在处理的路径层次信息

Entity

定义 XML entity

Node

为dom4j中所有的XML节点定义了多态行为

NodeFilter

定义了在dom4j 节点中产生的一个滤镜或谓词的行为(predicate)

ProcessingInstruction

定义 XML 处理指令

Text

定义 XML 文本节点

Visitor

用于实现 Visitor模式

XPath

在分析一个字符串后会提供一个 XPath 表达式

接口之间的继承关系如下:

interface java.lang.Cloneable

    interface org.dom4j.Node

           interface org.dom4j.Attribute

           interface org.dom4j.Branch

                  interface org.dom4j.Document

                  interface org.dom4j.Element

           interface org.dom4j.CharacterData

                  interface org.dom4j.CDATA

                  interface org.dom4j.Comment

                  interface org.dom4j.Text

           interface org.dom4j.DocumentType

           interface org.dom4j.Entity

           interface org.dom4j.ProcessingInstruction

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/330435.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot功能实战

转载自 Spring Boot功能实战 添加web功能启动器 添加了Spring Boot基础依赖后&#xff0c;如要使用web mvc功能&#xff0c;只需要添加如下启动器即可&#xff0c;Spring Boot会自动装配web功能。 <dependencies><dependency><groupId>org.springframework.b…

scanf用法总结

转载自&#xff1a;http://blog.csdn.net/21aspnet/article/details/174326函数名: scanf 功 能: 执行格式化输入 用 法: int scanf(char *format[,argument,…]);scanf()函数是通用终端格式化输入函数&#xff0c;它从标准输入设备(键盘) 读取输入的信息。可以读入任何固有类…

Spring Boot Runner启动器

转载自 Spring Boot Runner启动器 Runner启动器 如果你想在Spring Boot启动的时候运行一些特定的代码&#xff0c;你可以实现接口 ApplicationRunner或者 CommandLineRunner&#xff0c;这两个接口实现方式一样&#xff0c;它们都只提供了一个run方法。 CommandLineRunner&…

spring的PathMatchingResourcePatternResolver基于ant通配符匹配路径遍历项目所有xml文件

【1】代码 public class MybatisTest9_spring {/*** 遍历所有xml文件 */Test public void dom4j_test2() { System.out.println("dom4j_test2"); ResourcePatternResolver loader new PathMatchingResourcePatternResolver();try {Resource[] resources loader.…

Spring Cloud是什么,和Dubbo对比呢?

转载自 Spring Cloud是什么&#xff0c;和Dubbo对比呢&#xff1f; 简介 Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发&#xff0c;如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等&#xff0c…

think-in-java(21)并发

【README】 并发后半部分&#xff08;并发2&#xff0c;从21.4.3中断开始&#xff09;参见&#xff1a; https://blog.csdn.net/PacosonSWJTU/article/details/106878087 ; 本文章包括了并发1和并发2 &#xff0c;期初新建并发2是为了方便编写文档&#xff0c;因为并发内容实…

POJ3904(dfs)

Promble Description 定义一个二维数组&#xff1a; int maze[5][5] {0, 1, 0, 0, 0,0, 1, 0, 1, 0,0, 0, 0, 0, 0,0, 1, 1, 1, 0,0, 0, 0, 1, 0,}; 它表示一个迷宫&#xff0c;其中的1表示墙壁&#xff0c;0表示可以走的路&#xff0c;只能横着走或竖着走&#xff0c;不能斜…

SpringCloud注册中心高可用搭建

转载自 SpringCloud注册中心高可用搭建Spring Cloud的注册中心可以由Eureka、Consul、Zookeeper、ETCD等来实现&#xff0c;这里推荐使用Spring Cloud Eureka来实现注册中心&#xff0c;它基于Netfilix的Eureka做了二次封装&#xff0c;完成分布式服务中服务治理的功能&#xf…

吃透 | Elasticsearch filter和query的不同

少啰嗦&#xff0c;直接看东西。——罗永浩 1、query和filter的本质区别&#xff1f; 以下几张图能更好的概括&#xff1a; query关注点&#xff1a;此文档与此查询子句的匹配程度如何&#xff1f; filter关注点&#xff1a;此文档和查询子句匹配吗&#xff1f; 2、Query检索…

SpringCloud服务安全连接

转载自 SpringCloud服务安全连接Spring Cloud可以增加HTTP Basic认证来增加服务连接的安全性。 1、加入security启动器 在maven配置文件中加入Spring Boot的security启动器。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spr…

HDU1232

Problem Description 某省调查城镇交通状况&#xff0c;得到现有城镇道路统计表&#xff0c;表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通&#xff08;但不一定有直接的道路相连&#xff0c;只要互相间接通过道路可达即可…

elasticsearch7常见查询(term、match、bool、filter)

一、精准查询termterm是代表完全匹配&#xff0c;即不进行分词器分析&#xff0c;文档中必须包含整个搜索的词汇 1、term单值 字段只有一个值时候&#xff0c;用term关键词查询 查询biz_id值为1909190023901225的记录 curl -XGET http://192.168.1.73:9200/xyerp/order/_sea…

SpringCloud Eureka自我保护机制

转载自 SpringCloud Eureka自我保护机制自我保护背景 首先对Eureka注册中心需要了解的是Eureka各个节点都是平等的&#xff0c;没有ZK中角色的概念&#xff0c; 即使N-1个节点挂掉也不会影响其他节点的正常运行。 默认情况下&#xff0c;如果Eureka Server在一定时间内&#xf…

HikariCP-史上最快速的连接池

转载自 HikariCP&#xff0d;史上最快速的连接池 背景 我们知道的连接池有C3P0,DBCP,它们都比较成熟稳定&#xff0c;但性能不是十分好。 所以有了BoneCP这个连接池&#xff0c;它是一个高速、免费、开源的JAVA连接池&#xff0c;它的性能几乎是C3P0、DBCP的25倍&#xff0c;十…

一起来学ES —— 浅谈Nested结构

Nested是什么? 直观的说&#xff0c;Nested实际上就是Object的数组。如下&#xff0c;这个user就是个nested结构 { "user" : [ {"first" : "John","last" : "Smith"},{"first" : "Alice","last…

并集查经典(转发)

首先在地图上给你若干个城镇&#xff0c;这些城镇都可以看作点&#xff0c;然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点&#xff0c;让你判断它们是否连通&#xff0c;或者问你整幅图一共有几个连通分支&#xff0c;也…

关于es查询dsl的filter与must,term与match的区别

【1】创建es7 索引 put localhost:9200/pdi_cust &#xff0c; 注意 PUB_CUST_LABEL 字段分词了。 es7 不支持type &#xff0c;所以 无需指定type。 { "mappings" :{ "properties":{"RCRD_ID":{"type":"keyword"…

高级Java必看的10本书

转载自 高级Java必看的10本书 1、深入理解Java虚拟机&#xff1a;JVM高级特性与最佳实践 本书共分为五大部分&#xff0c;围绕内存管理、执行子系统、程序编译与优化、高效并发等核心主题对JVM进行了全面而深入的分析&#xff0c;深刻揭示了JVM的工作原理。 2、从Paxos到Zookee…

ES嵌套聚合

【1】 // dsl {"_source":["RCRD_ID", "STATE", "BUSI_CODE"], "query":{"bool":{"filter":[{"term":{"STATE":"PDOS"} }, {"nested":{"path":…

进阶Java架构师必看的15本书

转载自 进阶Java架构师必看的15本书 1、大型网站技术架构&#xff1a;核心原理与案例分析 本书通过梳理大型网站技术发展历程&#xff0c;剖析大型网站技术架构模式&#xff0c;深入讲述大型互联网架构设计的核心原理&#xff0c;并通过一组典型网站技术架构设计案例&#xff0…