Jdoms烦人的textnodes和addContent(索引,元素) - 架构解决方案?

时间:2012-08-13 13:11:12

标签: java jdom

我有一些已经生成的xmls并且导致问题的应用程序现在需要向它添加元素,这些元素需要处于特定位置以对应用的模式有效...

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

element1
text
element2
element4
text
element5

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

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

感谢您的建议:)

1 个答案:

答案 0 :(得分:1)

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

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

例如,如果要在第3个元素之前插入新元素nemt,您可以:

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

这些元素现已整理出来......文本怎么样......

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

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

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

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

罗尔夫