簡體   English   中英

Java內置XML

[英]Java built-in XML

Java是否有內置的XML庫來生成和解析文檔? 如果沒有,我應該使用哪個第三方?

Sun Java Runtime附帶了Xerces和Xalan實現,它們提供了解析XML(通過DOM和SAX接口)的能力,還可以執行XSL轉換並執行XPath查詢。

但是,最好使用JAXP API來處理XML,因為JAXP允許您不必擔心使用的底層實現(Xerces或Crimson或任何其他)。 當您使用JAXP時,JRE將在運行時使用它可以找到的服務提供程序來執行所需的操作。 如前所述,Xerces / Xalan將被使用,因為它隨Sun JRE一起提供(不是其他的),所以你不必下載並安裝特定的提供程序(比如,不同版本的Xerces或Crimson)。

可以在J2EE 1.4教程中找到一個基本的JAXP教程(它來自J2EE教程,但它會有所幫助)。

請注意,在org.apache.xerces。*或org.apache.xalan。*包中找不到Sun JRE提供的Xerces / Xalan實現。 相反,它們將出現在內部com.sun.org.apache.xerces。*和com.sun.org.apache.xalan。*包中。

順便說一句,JDOM不是XML解析器 - 它將使用JAXP為其提供的解析器,以便為您提供更容易的抽象。

是。 它在javax.xml包中有兩個選項:DOM在內存中構建文檔,而SAX是基於事件的方法。

您可能還想查看JDOM,它是第三方庫,提供兩者的組合,並且更易於使用。

是。 Java包含javax.xml庫。 您可以在Sun的Java API for XML Code Samples中查看一些示例

但是,我個人喜歡使用JDOM

javax.xml包中包含Java的原生XML解決方案,它實際上是Xerces的特殊版本。 你可以用它來做你所要求的,但是使用第三方庫(如JDOM)可以使整個過程變得更加容易。

看看JAX-B這是越來越多的“標准”XML處理方式。 使用Java注釋來簡化編程模型。 該參考提供了用於讀寫XML的示例代碼。

Java確實附帶了大量用於處理XML的包和類。 它們是Standard Edition JDK的一部分,位於javax.xml包下。

除了讀取XML並使用DOMSAX編寫它之外,這些包還執行XSL轉換JAX-B對象編組和解組, XPath處理和Web服務SOAP處理。 我建議您在Sun的優秀教程中閱讀有關這些內容的更多信息。

我不能告訴你使用哪一個(指定了一些要求,並且有十幾個庫),但我會認真考慮XOM( 這里 )。

由Eliotte Rusty Harold撰寫,它在XML規范方面相當完整,而且通常非常出色。 我發現它很容易使用。 請參閱上面的鏈接,了解Harold對其他解決方案的動機和批評。

您可以查看javax.xml包,其中包含在Java中使用XML文檔所需的一切...

用於XML處理的Java API(JAXP)是標准庫JavaSE的一部分。 JAXP允許您針對標准接口進行編碼,並允許您在以后根據需要選擇解析器實現。

用於XML處理的Java API(簡稱JAXP)使應用程序能夠使用獨立於特定XML處理器實現的API來解析和轉換XML文檔。 JAXP還提供了可插拔功能,使應用程序可以在特定的XML處理器實現之間輕松切換。

您可以使用StAX(XML的流API) http://en.wikipedia.org/wiki/StAX http://www.xml.com/pub/a/2003/09/17/stax.html https:// sjsxp.dev.java.net/

StAx經過優化,可以處理大型xml文件,而不會導致OOM(內存不足)問題:)

如上所述...... Java的SDK現在附帶了Xerces和Xalan。 Xalan只實現了XSLT API的1.0版,所以如果你想要2.0,你應該看看Michael Kay的Saxon。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM