这几天开始学习dom4j,在网上找了篇文章就开干了,上手非常的快,但是发现了个问题就是无法以UTF-8保存xml文件,保存后再次读出的时候会报“Invalidbyte2of2-byteUTF-8sequence.”这样一个错误,检查发现由dom4j生成的这个文件,在使用可正确处理XML编码的任何的编辑器中中文成乱码,从记事本查看并不会出现乱码会正确显示中文。让我很是头痛。试着使用GBK、gb2312编码来生成的xml文件却可以正常的被解析。
摘 要:介绍了XML应用中合并XML文档的方法与应用,在基于XML的应用中,有着广泛的应用前景。 在XML应用中,最常用也最实用的莫过于XML文件的读写。由于XML语义比较严格,起始标记必须配对,所以合并XML文档并不像合并普通文件那样简单。在JAVA中,如何合并XML文档,下面介绍一种方法。
用Digester解析xml到bean
java遍历文件夹解析xm代码
SAX解析SAX是一个用于处理XML事件驱动的“推”模型,虽然它不是W3C标准,但它却是一个得到了广泛认可的API。SAX解析器不像DOM那样建立一个完整的文档树,而是在读取文档时激活一系列事件,这些事件被推给事件处理器,然后由事件处理器提供对文档内容的访问。
功能简介dom4j是一个Java的XMLAPI,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的JavaXMLAPI,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。在IBMdeveloperWorks上面可以找到一篇文章,对主流的JavaXMLAPI进行的性能、功能和易用性的评测,dom4j无论在那个方面都是非常出色的。
XML解析技术概述:XML解析方式分为两种:dom和sax •dom:(Document Object Model, 即文档对象模型) 是 W3C 组织推荐的处理 XML 的一种方式。 •Dom适合增删改查,占内存较大 •sax: (Simple API for XML) 不是官方标准,但它是 XML 社区事实上的标准,几乎所有的 XML 解析器都支持它。,只适合读取。XML解析器 •Crimson、Xerces 、Aelfred2 XML解析开发包 •Jaxp(sun官方)、Jdom、dom4j(最好的)
先了解下它主要的包:DOM4j所有的接口都在org.dom4j这个包里定义着org.dom4j.Attribute :Attribute接口定义了XML文件的属性org.dom4j.Branch :Branch为能够包含子节点的节点如XML元素和文档定义了一个公共行为org.dom4j.CDATA :CDATA定义了XMLCDATA区域org.dom4j.CharacterData:CharacterData是一个标识接口,标识基于字符的节点。
基本介绍前言XStream是一个轻量级的、简单易用的开放源代码Java库,用于将Java对象序列化为XML或者再转换回来。而且XStream还能将java对象转成其它格式,比如JSon。官方上的XStream特点:使用简单不需要配置映射速度快,占用内存小生成的XML文件简洁不需要修改序列化对象的类型支持类嵌套详细的错误日志可转成其它格式XStream相比其它框架有如下的优点:XStream不关心序列化/逆序列化的类的字段的可见性。
功能简介dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。在IBM developerW orks上面可以找到一篇文章,对主流的Java XML API进行的性能、功能和易用性的评测,dom4j无论在那个方面都是非常出色的。如今你可以看到越来越多的Java软件都在使用dom4j来读写XML,特别值得一提的是连Sun的JAXM也在用dom4j。这是必须使用的jar包,Hibernate用它来读写配置文件。
XML在不同的语言里解析方式都是一样的,只不过实现的语法不同而已。基本的解析方式有两种,一种叫SAX,另一种叫DOM。SAX是基于事件流的解析,DOM是基于XML文档树结构的解析。
DOM4J是 dom4j.org 出品的一个开源 XML 解析包。DOM4J应用于 Java 平台,采用了 Java 集合框架并完全支持 DOM,SAX 和 JAXP。 DOM4J 使用起来非常简单。只要你了解基本的 XML-DOM 模型,就能使用。 Dom:把整个文档作为一个对象。
要使用dom4j读写XML文档,需要先下载dom4j包
DOM4J是 dom4j.org 出品的一个开源 XML 解析包。DOM4J应用于 Java 平台,采用了 Java 集合框架并完全支持 DOM,SAX 和 JAXP。DOM4J 使用起来非常简单。只要你了解基本的 XML-DOM 模型,就能使用。
DTD(文档类型定义)的作用是定义 XML 文档的合法构建模块。 它使用一系列的合法元素来定义文档结构。
xStream可以轻易的将Java对象和xml文档相互转换,而且可以修改某个特定的属性和节点名称,而且也支持json的转换;它们都完美支持JSON,但是对xml的支持还不是很好。一定程度上限制了对Java对象的描述,不能让xml完全体现到对Java对象的描述。这里将会介绍xStream对JSON、XML的完美支持。xStream不仅对XML的转换非常友好,而且提供annotation注解,可以在JavaBean中完成对xml节点、属性的描述。以及对JSON也支持,只需要提供相关的JSONDriver就可以完成转换。
dom4j读写xml文档。本讲目标掌握dom4j读写xml文档(增删改查);熟悉DOMSAX输出xml文件。
最近正在研究 C++下的XML 分析工具 CMarkup。初次和 XML 相遇是基于 C#对 XML 的操 作。C#的 XmlDocument 和 XmlNode 给我印象之深,让我至今都无法忘怀。现在想在 C++ 下发掘 XML的强大,结果却发现建房子你除了需要基本的建设材料外,还需要些而外的工 具。不像 C#那样,已经打成包供你直接使用了。好在有知道 CMarkup 这个小型 XML 的分 析器,可以为我所用。俗话说:磨刀不误砍柴工。我现在就来磨下刀。
JDOM是Jason Hunter与Brett McLaughlin于2000年春建立的一个开源项目(http://www.jdom.org/),它是一个基于Java的对象模型,与DOM一样也采用树状结构,能使读取、操作和写入XML文档,但比DOM更容易、更高效。已经推出的正式版本有JDOM 1.0(2004.9.9)和JDOM 1.1(2007.11.13,3.37MB)。 JDOM已于2001年2月26日被Sun公司主持的JCP (Java Community Process,Java社团过程) 批准为JSR (Java Specification Request,Java规范需求) 标准 (JSR-102)。等将来成为正式的JCP标准后,JDOM可能会成为JAXP的一部分(目前的JAXP含有DOM、SAX和TrAX),不过JSR-102至今仍未获正式批准。
掌握了XML文件解析的常用的4中方式:DOM解析、SAX解析、STAX解析以及DOM4j解析XML文件。