這幾天開始學習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文件。