我需要读取较小的XML文件(最多只有几MB, UTF-8编码),查找各种元素和属性,可能修改一些,并将XML再次写回磁盘(最好采用漂亮的缩进格式)。

最适合我的XML解析器是什么?有很多选择。我知道的有:

杰登 伍兹托克斯 XOM Dom4j VTD-XML 薛塞斯-J 深 红色

当然还有JDK中的那个(我用的是Java 6)。我熟悉Xerces,但觉得它很笨拙。

建议吗?


当前回答

如果速度和内存没有问题,dom4j是一个非常好的选择。如果需要速度,使用Woodstox这样的StAX解析器是正确的方法,但是必须编写更多的代码才能完成工作,并且必须习惯于处理流中的XML。

其他回答

Simple XML http://simple.sourceforge.net/非常容易(反)序列化对象。

除了SAX和DOM之外,还可以使用XMLStreamReader进行STaX解析,XMLStreamReader是一个xml拉式解析器。

如果速度和内存没有问题,dom4j是一个非常好的选择。如果需要速度,使用Woodstox这样的StAX解析器是正确的方法,但是必须编写更多的代码才能完成工作,并且必须习惯于处理流中的XML。

我不建议这样做,因为您在应用程序中已经进行了大量的“思考”,但是使用XSLT可能比Java操作更好(从XSLT到字节码的编译可能更快)。

我发现dom4j是处理XML的工具。尤其是和薛西斯相比。