Java語言編程中更新XML文檔的四種方法。第一種方法是直接讀寫XML檔案。第二種方法是使用Apache Crimson的XmlDocument類,這種方法極為簡單,使用方便,如果你選用Apache Crimson作為XML解析器,那麼不妨使用這種方法,不過這種方法似乎效率不高(源於效率低下的Apache Crimson),另外,高版本的JAXP或者是Java XML Pack、JWSDP不直接支援Apache Crimson,亦即這種方法不通用。第三種方法是使用JAXP的XSLT引擎(Transformer類)來輸出XML文檔,這種方法也許是標準的方法了,使用起來十分靈活,特別是可以自如控制輸出格式,我們推薦採用這種方法。第四種方法是第三種方法的變種,採用了Xalan XML Serializer,引入了序列化操作,對於大量文檔的修改/輸出有優越性,可惜的是要重複設定XSLT引擎的屬性和XML Serializer的輸出屬性,比較麻煩,而且依賴於Apache Xalan和Apache Xerces技術,通用性略顯不足。除此之外,實際上應用別的API(比如dom4j、JDOM、Castor、XML4J、Oracle XML Parser V2)也有很多辦法可以更新XML文檔。
概念介紹
Xerces/Crimson是XML解析器,Xalan是XSLT處理器,xml-apis.jar實際上是JAXP。
Apache Crimson的前身是Sun Project X Parser, 至今Apache Crimson的很多代碼都是從X Parser中直接移植過來的。早期的JAXP是和X Parser捆綁在一起的。後來的 JAXP和Apache Crimson捆綁在一起,比如JAXP 1.1。最新的JAXP 1.2 EA(Early Access)改弦更張,採用效能更好的Apache Xalan和Apache Xerces分別作為XSLT處理器和XML解析器,不能直接支援Apache Crimson了。
dom4j(dom4j.jar)是一個Java的XML API,類似於jdom,用來讀寫XML檔案的。dom4j是一個非常非常優秀的Java XML API,具有效能優異、功能強大和極端易用使用的特點,同時它也是一個開放原始碼的軟體,可以在SourceForge上找到它。在IBM developerWorks上面可以找到一篇文章,對主流的Java XML API進行的效能、功能和易用性的評測,dom4j無論在那個方面都是非常出色的。