dom4j解析xml原理详解

使用Dom4j解析XML dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它. 对主流的Java XML API进行的性能、功能和易用性的评测,dom4j无论在那个方面都是非常出色的。如今你可以看到越来越多的Ja 阅读详情

dom4j组件配合xPath解析xml,两个重点:dom4j对xml的操作;xPath对xml节点的匹配。


一、dom4j操作xml:

常用到的对象:

SAXReader:读取xml文件到Document树结构文件对象。

Document:是一个xml文档对象树,类比Html文档对象。具有跟节点、元素节点、父节点、子节点;属性节点、文本节点、注释节点;有id、class等这些属性。

Element:元素节点。通过Document对象可以查找单个元素,可以对元素节点进行常见的ACID操作。其中查询是最基本的应用,使用对象的方法,配合xPath的路径匹配解析模式。


常用的方法:


获取dom树的方法:

SAXReader reader = new SAXReader();

InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream("sys-config.xml");

Document doc = reader.read(in);

读取跟节点的方法:

doc.getRootElement();

获取某个节点的方法:

Element driverNameElt = (Element)doc.selectObject("/config/db-info/driver-name");

Element beanElt=(Element)doc.selectSingleNode("//bean[@id=\""+c.getName()+"\"]");

获取某类节点集合的方法:

List daoFactorylist = doc.selectNodes("/config/dao-factory/*");


常见的使用:读取xml、获取跟节点、遍历节点。

1、读取文档:

[java]  view plain  copy
  1. <span style="font-size:18px;">   private File inputXml;  
  2.      public Document getDocument() {  
  3.             SAXReader saxReader = new SAXReader();  
  4.             Document document = null;  
  5.             try {  
  6.                 document = saxReader.read(inputXml);  
  7.             } catch (DocumentException e) {  
  8.                 e.printStackTrace();  
  9.             }  
  10.             return document;  
  11.          }</span>  

2、获取跟节点:

[java]  view plain  copy
  1. <span style="font-size:18px;">    public Element getRootElement() {  
  2.        return getDocument().getRootElement();  
  3.     }</span>  

3、枚举根节点下的所有节点:

[java]  view plain  copy
  1. <span style="font-size:18px;">  Element root = getRootElement();  
  2.       
  3.     for (Iterator ie = root.elementIterator(); ie.hasNext();) {  
  4.             System.out.println("======");  
  5.             Element element = (Element) ie.next();  
  6.             System.out.println(element.getName());  
  7.     }  
  8. </span>  

4、枚举所有属性节点:

[java]  view plain  copy
  1. <span style="font-size:18px;"> for (Iterator ia = element.attributeIterator(); ia.hasNext();) {  
  2.               Attribute attribute = (Attribute) ia.next();  
  3.               System.out.println(attribute.getName() + ":"  
  4.                      + attribute.getData());  
  5.     }</span>  

5、枚举当前节点下的所有子节点:
[java]  view plain  copy
  1. <span style="font-size:18px;"> for (Iterator ieson = element.elementIterator(); ieson.hasNext();) {  
  2.               Element elementSon = (Element) ieson.next();  
  3.               System.out.println(elementSon.getName() + ":"  
  4.                      + elementSon.getText());  
  5.  }</span>  

6、获取并遍历某个节点下的所有子节点: 
[java]  view plain  copy
  1. <span style="font-size:18px;">                      List daoFactorylist = doc.selectNodes("/config/dao-factory/*");  
  2.               
  3.               
  4.             for (int i=0; i<daoFactorylist.size(); i++) {  
  5.                 Element daoFactoryElt = (Element)daoFactorylist.get(i);  
  6.                 String tagName = daoFactoryElt.getName();  
  7.                 String tagText = daoFactoryElt.getText();  
  8.                 System.out.println("读取DaoFactory-->>" + tagText);  
  9.                   
  10.                 //放入到Map中  
  11.                 daoFactoryMap.put(tagName, tagText);  
  12.                   
  13.                   
  14.             }  
  15. </span>  


二、xPath对路径的解析:

1、基本语法:

*

 

现节点下所有元素

 

*/Elem

 

现节点下所有节点的字节点中为“Elem”的节点

 

@Prop

 

属性值

 

@*

 

所有属于现节点的属性

 

.

 

现节点

 

..

 

现节点的上级

 

Elem[i]

 

现节点下第i个叫做Elem的元素(从1开始)

 

Elem[position() = 1]

 

现节点下第1个叫做Elem的元素(从1开始)

 

Elem/[@prop=“somevalue”]

 

现节点下,名字为Elem,具有prop的属性,并且属性值为somevalue的,那个元素

 

Elem1|elem2

 

现节点下,名字为Elem1或elem2的元素

 

.//elem

 

现节点下,可以跨越级别,所有的名字叫做elem的元素

 

Elem1//elem2

 

现节点下,可以跨越级别,所有的名字叫做elem2,且elem2的上级中有人叫Elem1,且Elem1是现节点的子元素,的元素

 


2、xPath节点类型:
  包括:根节点、元素节点、文本节点、属性节点、命名空间节点、处理指令节点、注释节点。与即是xml的节点类型相同。
3、以下面的xml树为例说明几种解析匹配模式:
 

[html]  view plain  copy
  1. <A id="a1">  
  2.   <B id="b1">  
  3.         <C id="c1">  
  4.           <B name="b"/>  
  5.           <D id="d1"/>  
  6.           <E id="e1"/>  
  7.           <E id="e2"/>  
  8.         </C>  
  9.   </B>  
  10.   <B id="b2"/>  
  11.   <C id="c2">  
  12.         <B/>  
  13.         <D id="d2"/>  
  14.         <F/>  
  15.   </C>  
  16.   <E/>  
  17. </A>  

1.按照路径解析:与文件路径的匹配相仿

(1)用“/”指示节点路径

如“/A/C/D” 表示节点"A"的子节点"C"的子节点"D",即id值为d2的D节点, “/”表示根节点。

(2)用“//”表示所有路径以"//"后指定的子路径结尾的元素

如“//E” 表示所有E元素,结果是所有三个E元素, 如“//C/E”表示所有父节点为C的E元素,结果是id值为e1和e2的两个E元素 。

(3)用“*”表示路径的通配符

如“/A/B/C/*”表示 A元素→B元素→C元素下的所有子元素,即name值为b的B元素、 id值为d1的D元素和id值为e1和e2的两个E元素

“/*/*/D”

“/*/*/D”表示上面有两级节点的D元素,匹配结果是id值为d2的D元素 , 如“//*”表示所有的元素。 

2.按照属性解析:使用@前缀表明是用属性匹配

//B[@id]表示所有具有属性id的B元素,结果为id值为b1和b2的两个B元素

//B[@*]表示所有具有属性的B元素,结果为两个具有id属性的B元素和一个具有name属性B元素

//B[not(@*)]表示所有不具有属性的B元素,结果为A元素→C元素下的B元素

//B[@id="b1"] id值为b1的B元素,结果为A元素下的B元素

3.按照位置解析:

/A/B/C[1]表示A元素→B元素→C元素的第一个子元素,得到name值为b的B元素

/A/B/C[last()]表示A元素→B元素→C元素的最后一个子元素,得到id值为e2的E元素

/A/B/C[position()>1]表示A元素→B元素→C元素之下的位置号大于1的元素,得到id值为d1的D元素和两个具有id值的E元素



4.按照亲属关系解析:常见的关系有父亲、孩子、祖先(父节点及父节点以上)、后代、兄弟。

//E/parent::* 表示所有E节点的父节点元素,结果为id值为a1的A元素和id值为c1的C元素

//F/ancestor::* 表示所有F元素的祖先节点元素,结果为id值为a1的A元素和id值为c2的C元素

/A/child::* 表示A的子元素,结果为id值为b1、b2的B元素,id值为c2的C元素,以及没有任何属性的E元素

/A/descendant::* 表示A的所有后代元素,结果为除A元素以外的所有其它元素

//F/self::* 表示所有F的自身元素,结果为F元素本身

//F/ancestor-or-self::* 表示所有F元素及它的祖先节点元素,结果为F元素、F元素的父节点C元素和A元素

/A/C/descendant-or-self::* 表示所有A元素→C元素及它们的后代元素,结果为id值为c2的C元素、该元素的子元素B、D、F元素

/A/C/following-sibling::* 表示A元素→C元素的紧邻的后序所有兄弟节点元素,结果为没有任何属性的E元素

/A/C/preceding-sibling::* 表示A元素→C元素的紧邻的前面所有兄弟节点元素,结果为id值为b1和b2的两个B元素

/A/B/C/following::* 表示A元素→B元素→C元素的后序的所有元素,结果为id 为b2的B元素、无属性的C元素、无属性的B元素、id为d2的D



元素、无属性的F元素、\无属性的E元素。

/A/C/preceding::*表示A元素→C元素的前面的所有元素,结果为id为b2的B元素、id为e2的E元素、id为e1的E元素、id为d1的D元素、name



为 b的B元素、id为c1的C元素、id为b1的B元素 



5.函数解析:

last()、position()等,不为重点。



三、实例应用:
1、将Oracle数据库配置信息写到xml文件中,使用dom4j解析:
sys-config.xml文件:

[html]  view plain  copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <config>  
  3.     <db-info>  
  4.         <driver-name>oracle.jdbc.driver.OracleDriver</driver-name>  
  5.         <url>jdbc:oracle:thin:@localhost:1521:orcl</url>  
  6.         <user-name>drp1</user-name>  
  7.         <password>drp1</password>  
  8.     </db-info>  
  9.   
  10.   
  11. </config>  


XmlConfigReader类的构造函数:
[java]  view plain  copy
  1. private XmlConfigReader() {  
  2.       
  3.       
  4.     SAXReader reader = new SAXReader();  
  5.       
  6.     InputStream in = <strong>Thread.currentThread().getContextClassLoader().getResourceAsStream</strong>("sys-config.xml");  
  7.     try {  
  8.                          
  9.           
  10.           
  11.         Document doc = reader.read(in);  
  12.           
  13.         //取得jdbc相关配置信息  
  14.         Element driverNameElt = (Element)doc.selectObject("/config/db-info/driver-name");  
  15.         Element urlElt = (Element)doc.selectObject("/config/db-info/url");  
  16.         Element userNameElt = (Element)doc.selectObject("/config/db-info/user-name");  
  17.         Element passwordElt = (Element)doc.selectObject("/config/db-info/password");  
  18.         ........          
  19.         //读取出这些信息后可以设置到一个数据库配置信息实体类中,或进行其他操作。  
  20.           
  21.     } catch (DocumentException e) {  
  22.         e.printStackTrace();  
  23.     }             
  24. }  


2、从配置文件反射Dao层类:
xml配置文件:
[html]  view plain  copy
  1. <config>  
  2.     <dao-factory>  
  3.         <item-dao-facotry>com.bjpowernode.drp.basedata.dao.ItemDaoFactory4Oracle</item-dao-facotry>  
  4.       
  5.         <user-dao-facotry>com.bjpowernode.drp.basedata.dao.UserDaoFactory4Oracle</user-dao-facotry>  
  6.     </dao-factory>  
  7. </config>  



循环读取dao-factory下的item-dao-factory节点到一个Map中:
[java]  view plain  copy
  1. //保存dao工厂的名称  
  2. //key=名称,value=具体类完整路径  
  3. private Map<String, String> daoFactoryMap = new HashMap<String, String>();  


doc是Document对象,读取方法同上面的例子
[java]  view plain  copy
  1. //取得DaoFactory信息  
  2. List daoFactorylist = doc.selectNodes("/config/dao-factory/*");  
  3.   
  4.   
  5. for (int i=0; i<daoFactorylist.size(); i++) {  
  6.     Element daoFactoryElt = (Element)daoFactorylist.get(i);  
  7.     String tagName = daoFactoryElt.getName();  
  8.     String tagText = daoFactoryElt.getText();  
  9.     System.out.println("读取DaoFactory-->>" + tagText);  
  10.       
  11.     //放入到Map中  
  12.     daoFactoryMap.put(tagName, tagText);  
  13.       
  14.       
  15. }  

document的selectNodes()返回某个节点的子节点集合。

总结:
  dom4j是java中解析xml的一个组件,xPath用于xml文件节点的选择,具有多种匹配模式:路径、属性、位置、关系、函数等。
  针对常见的xml文件的解析可以封装到一个类中,类似sqlHelp的封装,完成对xml文件的ACID,遍历修改等操作。

  还有其他的对xml解析方法,如:使用dom方法、SAX方式。不再详述。


转自:http://blog.youkuaiyun.com/lmdcszh/article/details/9236427

dom4j XML解析工具包与示例 在信息技术飞速发展的今天,Java开发者在处理XML文档时经常需要面对复杂的数据结构和大量的数据处理需求。DOM4J应运而生,以其高性能和易用性在众多XML处理库中脱颖而出。本章节将引领您初步了解DOM4J库,并介绍其在实际应用中的基础。DOM4J库是一个功能强大的开源Java库,用于处理XML文档,它能够创建、查询和修改XML文件。其名称"DOM4J"的含义为“Document Object Model for Java”,突显了它作为文档对象模型的实现。 阅读详情

相关推荐

深入解析dom4j与jaxen XML处理库

XML(Extensible Markup Language)可扩展标记语言是一种用于存储和传输数据的标记语言,它通过自定义标签来描述信息,提供了一种结构化的方式来表现信息内容。在Java领域,XML被广泛用于配置文件、数据交换和文档存储中,是各种Java XML API处理的基础。dom4j是一个易用、开源的Java XML API,它支持XML、XPath和XSLT。它与JDOM类似,但提供了更大的灵活性和更丰富的API。

weixin_42513870的博客 1183

Dom4j解析XML(详解)

Dom4j解析XML(详解) DOM解析 SAX解析 使用Dom4j解析XML 结合XPath解析XML

qq_51447436的博客 3万+

Java中SAX、Pull与DOM4J解析XML文件技术详解

本文还有配套的精品资源,点击获取 简介:本文详细介绍了Java中三种XML解析技术:SAX、Pull和DOM4J。这三种方法适用于不同的应用场景,如大文件处理和频繁查询。本文将通过Eclipse 4.8和Java 1.8环境的演示,让读者了解如何使用这些方法进行XML数据解析。SAX解析器基于事件驱动,适合大文件处理;Pull解析器提供了一个简洁的API,适合Android...

weixin_36184718的博客 946

使用Dom4j解析XML文件

使用Dom4j解析XML文件

junR_980218的博客 5652

使用dom4j和反射机制解析XML的完整教程

可扩展标记语言(XML)是用于存储和传输数据的行业标准,被广泛应用于数据交换和配置文件中。XML通过标签来组织数据,使其拥有自描述的特性,这允许用户根据需要自定义标签和属性,而不依赖于预定义的标记集合。它能够支持异构系统间的数据交换,同时保持数据的结构和内容清晰。DOM4J是一个功能强大的、灵活的、开源的Java库,用于处理XML文档。它支持DOM、SAX和JAXP,并且能够与XPath和XSLT紧密集成。DOM4J的一个重要特点就是性能卓越,尤其在处理大型文档时表现尤为突出。

weixin_30923011的博客 660

掌握Java DOM4J库进行XML解析与操作

Java的DOM4J是一个强大的开源库,它广泛应用于处理XML文档,提供了一组丰富的API来创建、解析和修改XML数据。DOM4J是一种基于文档对象模型(DOM)的Java API,它允许程序员以面向对象的方式操作XML文档,与DOM相比,DOM4J提供了更好的性能和灵活性。DOM4J支持SAX接口,并且它易于使用和集成到现有的Java应用程序中。除了广泛的功能之外,它还允许快速访问和处理XML文档,这使得它成为许多Java开发人员在需要处理XML数据时的首选工具。

weixin_42509888的博客 1059

Dom4j框架解析XML

XML解析是指将XML格式数据转换成计算机程序能够理解的数据结构的过程。XML解析器可以将XML文件解析成DOM(文档对象模型)、SAX(简单API for XML)等不同的数据结构。通过对XML文件进行解析,程序可以读取和操作其中的数据,从而实现对XML文件的数据分析和处理。常用的XML解析库包括Java中的DOM解析器和SAX解析器,C++中的libxml2库和TinyXML库,Python中的ElementTree库和lxml库等。

万维网连五洲,二进制写尽天下事,喜欢结识新伙伴寻找志同道合的朋友,欢迎一起探讨学习 2880

U3d WebGL使用ToLua

首先我们在编辑器模式下加入Tolua插件,然后配置修改到在编辑器模式下能够正常的运行。 同个U3d 插件Build出WebGL的工程,运行的时候你会发现(有些需要把这个WebGL工程放在一个HttpServer下面,直接本地访问index.html会被拒绝,让你使用http的格式)。 当要加载完的时候会出现 To use dlopen, you need to use Emscripten'...

qq_35267906的博客 2948

如何使用Dom4J解析XML文档

本文涉及XML解析的方式、使用Dom4j解析XML文档、Dom4j结合XPath解析XML等内容。

十八岁讨厌编程的博客 2069

【智慧城市】GIS数据获取-获取道路/水路数据

【GIS数据获取】获取道路/水路数据

qq_16599281的博客 4751

使用VLC库实现视频播放器(WPF版)

使用wpf制作一个视频播放器 一、 LibVLCSharp介绍 LibVLCSharp是基于VideoLAN的LibVLC库的.NET平台的跨平台音频和视频API。它提供了一个全面的多媒体API,可以跨移动、服务器和桌面使用,以呈现视频和输出音频。支持Mono、.NET Framework和.NET核心运行时。在vs工具中,只需要安装截图中得两个nuget包。 二、视频播放器的实现 视频播放器的实现需要用到两个比较nuget包中提供的类,MediaPlayer类。MediaPlayer类型用于控

cangqiongxiaoye的博客 1万+

反射和XML

反射和XML 回顾: 1 NIO简介 Java Non-blocking IO New IO 2 和传统IO (1) 面向流 ,面向缓冲区 (2) 阻塞, 非阻塞 (3) 无 选择器(selector) 3 NIO Buffer:ByteBuffer CharBuffer Channel:FileCh...

awd20420318767642的博客 222

基于LORA的双机通信的智能农业系统

通过LoRa模块与主机进行通信,监测环境中的温度、湿度、土壤湿度和光照强度等参数,并根据预设的自动控制逻辑或者手动指令控制继电器开关,从而调节风扇、加热器、水泵、喷雾器和灯光等设备,为植物提供适宜的生长环境。使用的Lora是大夏龙雀的感觉这个是我使用过的Lora里面最好用的,因为不用设置频道就可以直接透明传输,使用起来得心应手。就像两个单片机直接串口通信一样,缺点是异步串行,不能同时进行接收和发送。继电器灯亮模拟打开对应的风扇、水泵、灯、喷雾、加热。1.使用温度传感器测当前环境的温湿度。

ssjsjss的博客 1740

012-特殊文本文件「Java」

什么是Properties?答:是一个Map集合(键值对集合),但是我们一般不会当集合使用。作用:Properties 是用来代表属性文件的,通过 Properties 可以读写属性文件里的内容。

Fang_Jason的博客 524

揭秘个人开发者接支付宝的‘野路子’:不用企业资质,用Python模拟扫码转账与回调监听

本文探讨了个人开发者如何通过Python模拟支付宝扫码转账与回调监听的技术实现,解析了支付宝URL协议格式,并设计了本地化的支付状态监听方案。文章强调该方法仅用于技术研究,实际应用需遵守支付宝官方接口和金融合规要求。

weixin_30736301的博客 409

域控制器迁移后NETLOGON共享丢失的修复指南

本文详细解析了在Windows域控制器迁移后NETLOGON共享丢失的故障现象与修复方法。通过使用Dcdiag工具诊断,定位注册表键值SysVolReady异常及SCRIPTS目录缺失等核心原因,并提供了修改注册表、创建目录、重启Netlogon服务等逐步修复指南,帮助管理员快速恢复域用户登录功能,确保业务连续性。

weixin_29245767的博客 88

在C#中选择正确的集合进行编码

/去除内容两边的空。slf4j-api日志框架下载地址:https://repo1.maven.org/maven2/org/slf4j/slf4j-api/格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度,%msg:日志消息,%n是换行符。Logback日志框架官方网站:https://repo1.maven.org/maven2/ch/qos/logback/如果一个文件中放置的是XML格式的数据,这个文件就是XML文件,后缀一般要写成.xml。

2501_94596355的博客 350

Potplayer + LAVFilters + madVR 配置教程

文章目录Potplayer + LAVFilters + madVR 配置教程工具安装篇设置调教1.potplayer播放器设置加载LAVFilters和madVR1.选择“源滤镜/分离器”选项,选择“滤镜/解码器管理”2.“添加外部滤镜”3.浏览到刚才LAVFilters解压的文件夹,分别添加图示项。4.添加后回到管理界面设置,点击左边的”LAV AudioDecoder”,将右边”音频解码器”...

re 16万+

深入浅出:使用DOM4J结合XPath高效解析XML

当将数据存储在XML后,我们就希望通过程序获取XML的内容。我们使用Java基础所学的IO知识是可以完成的,不过需要非常繁琐的操作才可以完成,且开发中会遇到不同问题(只读、读写)。人们为不同问题提供不同的解析方式,使用不同的解析器进行解析,方便开发人员操作XML。

2301_80237574的博客 1643

解决Home Assistant中安装的Advanced SSH & Web Terminal插件打开提示“502 Bad Gateway” 且弹窗提示“加载项似乎尚未准备就绪,它可能仍在启动中“问题

  在HomeAssistant的应用商店安装了【AdvancedSSH&WebTerminal】插件,但是打开这个终端连接到HomeAssistant的时候却提示“502BadGateway”且弹窗提示“加载项似乎尚未准备就绪,它可能仍在启动中,您想重试吗?”一直无法进入HomeAssistant的系统中

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 2840

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

XML 解析技术:DOM4j

Dom4j 是一个简单、灵活的开放源代码的库(用于解析/处理 XML 文件)。Dom4j 是由早期开发 JDOM 的人分离出来而后独立开发的。与 JDOM 不同的是,dom4j 使用接口和抽象基类,虽然 Dom4j 的 API 相对要复杂一些,但它提供了比 JDOM 更好的灵活性。

Baridhu的博客 2446

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

xml解析之Dom4J

1 xml解析 ***注意点 1、只有标签节点(element)才有子节点,属性节点(attribute)与文本节点(text)没有子节点 2、空格和换行也是xml的内容,作为原始内容被处理 3、123 4、123 1.1 解析方式(原理不同) DOM解析: SAX解析:   1.2 xml解析工具 DOM解析: 1)JAXP(sun公司官方) 2)JDOM工具(非官方)

LFSenior 4349

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【高级编程】XML DOM4J解析XML文件(含案例)

XML(EXtensible Markup Language),可扩展标记语言。XML 与操作系统、编程语言的开发平台无关。DOM4J(Document Object Model for XML in Java)是一个简单、轻量级的Java库,用于处理XML文档。它提供了一种方式来读取、修改和写入XML文件。DOM 把 XML 文档映射成一个倒挂的树。接下来分别定义读取、修改、添加、删除 XML 的静态方法。除非带有前缀,否则属性属于所属的元素的命名空间。元素名称可以包含字母、数字或其他的字符。

m0_66584716的博客 1921

DOM4J 解析 XML 之忽略转义字符

本文为博主原创文章,未经允许不得转载 背景 项目开发需要手动合入几十种语言的翻译到 string.xml 中,这是一件非常痛苦的事情:Copy、Paste,Copy、Paste,Copy、Paste... 人都快疯了!被逼无奈写了个自动替换翻译的工具。原理很简单:解析 Excel中的翻译,替换到 Xml 中。Excel 解析用 jxl.jar,Xml ...

Yuloran的专栏 3513

DOM、SAX、JDOM、DOM4J以及PULL在XML文件解析中的工作原理以及优缺点对比

1. DOM(DocumentObjectModel)文档对象模型(1)DOM是W3C指定的一套规范标准,DOM的核心是按树形结构处理数据,DOM解析器读入XML文件并在内存中建立一个结构一模一样的树,可以指定要访问的元素,进行随机访问,随意修改XML文件。尤其是向前处理时非常容易。 (2)DOM是基于内存的,不管文件有多大,都会将所有的内容预先装载到内存中。从而消耗很大的内存空间。......

关于Android开发的一些技术点总结 ╮( ̄▽ ̄”)╭ 1万+
上一篇: 我为什么不继续做java,用4个月转做了Hadoop开发?
下一篇: freemarker常见语法总结。
ExceptionMapping
博客等级 码龄10年 30粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值