2012-03-10 197 views
0

在我自己的基準測試和其他網站鏈接中,與DOM庫相比,JAXB解析XML文件的速度更快。但是,當我試圖從它的根對象中搜索JAXB對象時,與DOM相比,它的速度令人失望。快速搜索JAXB對象

對於使用JAXB進行搜索,我使用了Apache JXPath庫,即JXPathContext類和它的getValue()方法。相比之下,對於使用DOM進行搜索,我使用了Document類和getElementsByTagName()方法。我的基準測試顯示前者比後者慢得多。如果我想快速解析XML文件,我想使用JAXB,但是如果我想快速搜索節點對象,則必須使用DOM。我想知道是否有最佳的方法來執行這兩個操作,例如,JAXB對象搜索或JAXB樹比JXPath更快的方法。

在此先感謝!

回答

1

我錯過了這裏的明顯嗎?

JAXB編組到Java對象。 Java對象可以攜帶方法。如搜索方法。這要比依靠一堆內省來爲泛型方法嗅探註釋要快很多,因爲,默認情況下,您可以跳過XML的無關部分。更好的是:你可以爲特定的搜索查詢優化數據結構本身(Java對象)。

+0

謝謝你的好處。我當然可以在根類java類中添加一個專用的搜索方法,但這不像DOM庫那麼好。我想知道是否有一種通用的方法來在JAXB中搜索對象,例如具有類似性能的DOM Document類,或者至少比JXPath庫更快。 – 2012-03-10 03:42:18