【发布时间】:2013-07-07 00:35:37
【问题描述】:
假设我有一个非常简单的输入示例 XML 文件,如下所示
<?xml version="1.0"?>
<content>
<some />
</content>
我想修改 xml 结构,在原始结构的任何位置插入额外的元素,或者用其他内容替换一个元素。
我可以使用 EclipseLink MOXy 以某种方式实现吗?例如。我想用“someReplacement”替换“some”并添加“whatever”。
<?xml version="1.0"?>
<content>
<someReplacement>
<more>information</more>
</someRepaclement>
<whatever />
</content>
我要处理的实际 XML 更复杂,但我实际上只处理其内容的一小部分,所以我不希望将完整的文件解组为复杂的 bean 结构,对一小部分进行更改元素,并将整个结构编组回一个文件。至少我不想知道复杂性。
这是因为输入的 XML 模式可以有很大的不同,但我关心的特定元素存在于每个模式中。因此,理想情况下,我希望找到解决方案,例如在绑定文件之类的东西中调整 XPath 以指向我想要替换/插入的元素。
我不想使用 JDOM,因为我为插入/替换生成的元素很复杂,我不想“手动”创建它们,而是映射一些 bean 结构。
我可以用 MOXy 做到这一点吗?还有其他 JAXB 提供商吗?我应该使用 JDOM,还是有什么可以帮助的?
【问题讨论】:
-
我认为这实际上可能会有所帮助:stackoverflow.com/questions/4230499/java-to-xml-conversions(用例 #5),blog.bdoughan.com/2010/09/jaxb-xml-infoset-preservation.html。我会尝试并报告回来
-
如果效率很重要,您可能需要查看 vtd-xml
标签: xml jaxb eclipselink moxy jdom