2012-03-10 130 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