我想解析java中的XML。它將是DOM或SAX。閱讀JAXP是一本好書。另外,當我谷歌出來找到XERCES/XALAN。常用的解析器是?在JAVA中解析XML元素
在SAX解析器中,如果我註冊單個元素事件,SAX解析會在遇到元素後停止處理XML消息。在書中閱讀DOM讀取整個XML並加載到內存中,即使我想知道單個元素的值。
回答
你提到的所有上述解析器都非常好。如果應用程序執行了大量的XML處理,那麼我的個人偏好就是XERCES,否則「內置」解析器不夠好。
您將需要處理來自SAX解析器的每個事件,並忽略那些您不感興趣的事件。您可以通過「銷燬」解析器對象來停止解析。如果你只對一個大消息的一個或兩個元素感興趣,那麼SAX就是要走的路。如果你對所有或大部分元素都感興趣,那麼使用DOM解析器,你可以輕微地獲得性能,但是,「給我我想要的東西」API使得代碼比「我要給你的東西」更清晰API。
我想在java中解析XML。它將是DOM或SAX。在書中閱讀 JAXP是一個不錯的選擇。另外,當我谷歌出來找到XERCES/XALAN。哪個 解析器是常用的?
Xerces是DOM和SAX的實現,它是內置於JDK中的。見javax.xml.parsers
。
在SAX解析器中,如果我註冊單個元素事件,SAX 解析會在遇到元素後停止處理XML消息。
號
讀一本書,即使 我想知道的單個元素值DOM讀取整個XML並加載到內存中。
是的。
非常感謝您的信息。 XERCES是獨立的JAR文件還是與JDK一起提供? JAXP比xerces更好嗎?另外當我想訪問一個或兩個大消息的元素,如果我使用SAX解析器並銷燬解析器對象,它是有效的?否則,它像DOM Parser一樣工作?使用它有什麼好處?另外,如果我想創建消息Web服務的SOAP消息,我可以使用xerces解析器?我應該使用什麼? – Arav 2012-03-16 05:38:52
@Arav(1)正如我已經說過的,Xerces是內置於JDK中的。 JAXP是Xerces的一個包裝。 (2)SAX非常適合這種用途。 (3)SAX不能像DOM那樣工作,因爲它不會構建DOM,它只是在文檔越過它時傳遞事件。 (4)解析器解析現有消息,它們不創建新消息。 (5)JAXP包含一個DocumentBuilder--猜測是什麼 - 構建文檔;但是Java已經有API來構建SOAP請求。 – EJP 2012-03-16 06:01:35
非常感謝信息 – Arav 2012-03-18 22:52:26
我不確定我是否掌握了您想要完成的所有細節,但是如果您有描述XML格式的xsd文件,我會說JAXB是要走的路。它會帶你xsd併爲你自動生成類。然後,您可以輕鬆地來回 - 編組和解組數據。 Netbeans的自動化水平最近讓我印象深刻,當我解決類似的任務時
希望我的建議能夠考慮JAXB是有幫助的。
非常感謝JAXB的信息 – Arav 2012-03-16 05:41:31
+1。除了從XML模式生成Java模型外,您還可以從您自己的域類開始,並使用JAXB註釋來自定義XML表示:http://wiki.eclipse.org/EclipseLink/Examples/MOXy/GettingStarted/TheBasics – 2012-03-16 10:01:09
DOM和SAX的接口,Xerces的是目前最流行的實現這些接口。實際上有兩個版本的Xerces:一個來自Apache,另一個來自Sun/Oracle JDK。 JDK中的一個是越野車;優先使用Apache中的一個。
由於您剛剛起步,因此它可能比DOM和SAX更爲廣泛。 SAX是一個非常低級的接口,提供了很好的性能,但功能很少:如果這是您的方式,您可以期望在應用程序中編寫相當多複雜的代碼。 DOM爲您提供了一個XML樹形模型,但是有更多更好更簡單的接口可以做同樣的事情:JDOM提供了您需要的一切,並且比DOM更易於使用。
非常感謝您的信息。 – Arav 2012-03-20 05:31:18
- 1. 解析XML元素
- 2. 解析TableView的XML元素
- 3. 解析xml元素到類
- 4. 在線XML解析器元素
- 5. 在Java中解析XML
- 6. 使用DOM解析Java中的複雜元素XML
- 7. 使用PHP解析元素中的xml元素
- 8. JAVA - 解析XML
- 9. JAVA,Xml解析
- 10. Java XML解析
- 11. Java XML解析
- 12. java,xml解析
- 13. Oracle XML解析與Java XML解析
- 14. 用Perl解析XML元素和屬性
- 15. 使用jquery解析XML節點元素
- 16. objective-c iphone XML解析一個元素
- 17. 當元素缺失值時解析xml
- 18. 如何解析Nokogiri XML元素?
- 19. iOS解析整個XML元素
- 20. XML解析:屬性,而不是元素
- 21. 使用SAX解析常用XML元素
- 22. 瞭解XML元素的分析
- 23. 如何解析XML具有NS2元素
- 24. 解析XML對象HTML UI元素
- 25. XML解析錯誤:找不到元素?
- 26. 解析用的ActiveResource零XML元素
- 27. 解析時從xml過濾元素
- 28. Python XML解析 - 對齊索引元素
- 29. 解析XML與不同元素
- 30. JQuery XML解析多層同一元素
非常感謝您的信息。 XERCES是獨立的JAR文件還是與JDK一起提供? JAXP比xerces更好嗎?另外當我想訪問一個或兩個大消息的元素,如果我使用SAX解析器並銷燬解析器對象,它是有效的?否則,它像DOM Parser一樣工作?使用它有什麼好處?另外,如果我想創建消息Web服務的SOAP消息,我可以使用xerces解析器?我應該使用什麼? – Arav 2012-03-16 05:38:27
SAX解析器的優勢在於它可以在解析元素時爲您提供這些元素。因此,如果您只是想在將xml傳遞到另一個進程之前知道類似國家代碼的內容,那麼這非常有效。另一方面,DOM解析器會構建嵌套字典和列表的複雜結構,因此您必須等待所有XML被解析,然後才能構建完整的樹,然後才能訪問任何元素。如果你只是想檢查一個或兩個元素,它非常昂貴。由於SAX是一個流解析器,您可以處理任何大小的文檔。一個DOM解析器需要適應內存中的所有內容。 – 2012-03-16 07:37:14
非常感謝信息 – Arav 2012-03-18 22:51:32