用于Java中XML处理的Dom4J替代方案

时间:2018-01-09 08:32:15

标签: java xml xpath jaxb dom4j

我们想升级我们的项目,以便使用一些最新的依赖项。目前我们使用jaxb进行XML读写。这非常有效。

在某些情况下,我们没有xsd或dtd来生成java类(通过xjc)。在这些情况下,我们使用dom4j创建xml文档或使用xpath dom4j来读取xml文档。

版本1.6.1已经超过十年了,据我所知,dom4j需要jaxen作为X-Path库。 Jaxen 1.1.6也是4岁。我们也从我们的项目xerces 2.40(也是12岁)中删除了。

目前最先进的XML API是什么?它应该支持XPATH表达式,并且应该创建和读取xml文档。

我也想知道xerces。当我们使用JAXB读取xml文档时,有时我们会有一个对象值而不是字符串,日期或其他东西。

原因是有人弄乱了xsd而忘了为某些元素定义数据类型。 XJC在生成的java类中创建简单的对象属性。奇怪的是,我需要将对象转换为" ElementNSImpl"宾语。该对象来自xerces项目。

我有点困惑。我们删除xerces的解决方案是使用适当的数据类型定义每个元素。不幸的是,那些XSD是第三方XSD,我们必须在每次XSD改变时修复它。但为什么我必须在ElementNSImpl中转换对象?

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

只是因为某些东西已经老了'并不代表它没用。 DOM4J仍然是我最喜欢的ad-hoc XML处理工具。自{1.6}以来,dom4j已更新,但请注意它仍然依赖于欠载的XML解析器(例如Xerces)。

答案 1 :(得分:0)

dom4j 1.6.1版具有XML注入安全漏洞:https://nvd.nist.gov/vuln/detail/CVE-2018-1000632

它似乎已在2018年7月发布的2.1.1中修复。