簡體   English   中英

使用Java解析xml文件

[英]Parsing a xml file using Java

我需要使用JAVA解析xml文件,並且必須在解析后從該xml文件中創建一個bean。

我在使用Spring JMS時需要這個,其中生產者正在生成xml文件。首先,我需要讀取xml文件並根據采取措施。

我讀了一些有關解析的內容,並附帶了這些選項

  1. 路徑
  2. DOM

哪一個是解析xml文件的最佳選擇。

你檢查JAXB了嗎

有三種解析XML文件的方法:SAX,DOM和StAX。

DOM將解析整個文件並在內存中構建一棵樹-非常適合小文件,但是顯然,如果這很大,那么您就不希望整個樹都位於內存中! SAX是基於事件的-它本身不會將任何內容加載到內存中,而只是在讀取文件時觸發一系列事件。 StAX是兩者之間的中間值,應用程序會根據需要將光標向前移動,並隨即獲取數據(因此不會觸發事件或占用大量內存)。

您使用的是什么,實際上將取決於您的應用程序-自Java 6起,所有功能都已內置在庫中。

如果需要創建對象,只需提取所需的屬性並繼續...我建議使用StaX,有關更多信息,請參見本教程

看起來,您通過Java消息傳遞收到了序列化的對象。 首先看一下對象如何被序列化。 通常,這是通過庫(jaxb,axe,...)完成的,您可以使用相同的庫來創建反序列化器。

你會需要:

  1. xml模式(xsd文件)
  2. Java bean類(非常有用,它應該存在)

然后,通常該庫將創建所有幫助程序類和文件,而您不必關心解析。

嗯..有幾種方法可以將xml文檔解析到內存中並使用它。 您提到了DOM。 DOM實際上將整個文檔上載到內存中,然后允許您在XML文檔的不同分支之間移動。

另一方面,您可以使用StAX。 它的工作原理類似於DOM。 唯一的區別是,它可以流化XML文檔的內容,從而可以更好地分配內存。 另一方面,它不保留已讀取的信息。

查看: http : //download.oracle.com/javaee/5/tutorial/doc/bnbem.html它提供了有關解析方法和示例代碼的詳細信息。 希望能有所幫助。

暫無
暫無

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

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