0

我有一些已经生成的 xml,导致问题的应用程序现在需要向其中添加元素,这些元素需要位于特定位置才能对应用的模式有效...

现在有两个问题,第一个是我必须硬编码那些不是很好但“好的”的位置。但更大的是 jdom ......我打印了内容列表,它看起来像:

element1
text
element2
element4
text
element5

虽然文本节点只是空格,而我添加的每个元素都使得它更加不可预测有多少文本节点(因为有时添加了一些有时没有),它们只是被视为元素,但我想忽略它们,因为当我添加 element3在索引 2 处,它不在 element2 和 element4 之间,它出现在这个烦人的文本节点之后。

有什么建议么?恕我直言,最好的解决方案是根据架构自动将其放置在必须的位置,但我认为这是不可能的?

谢谢你的建议 :)

4

1 回答 1

1

XML 的 JDOM 模型非常真实……它必须如此。另一方面,JDOM 提供了过滤和处理 XML 的方法,使您的任务更容易。

在您的情况下,您想将 Element 内容添加到文档中,并且所有文本内容都是空格.....所以,只需忽略所有文本内容,而只担心 Element 内容。

例如,如果你想在第 3 个元素之前插入一个新元素 nemt,你可以:

rootemt.getChildren().add(3, new Element("nemt"));

元素现在已经整理好了……文字呢……

一个非常简单的解决方案是漂亮地打印输出:

XMLOutputter xout = new XMLOutputter(Format.getPrettyFormat());
xout.output(System.out, mydoc);

这样,所有的空白都将被重新格式化以使 XML '漂亮'。

编辑 - 不,JDOM 无法根据架构自动将元素插入正确的位置....

罗尔夫

于 2012-08-13T14:02:04.037 回答