我最近使用Java的DOM解析器创建了一个解析器,它可以加载xmls并修正一些元素,属性等。 问题是输出格式不会像我希望的那样保持评论。
这里发生了什么:
@@ -2107,7 +2121,8 @@
<set name="enchant_enabled" val="1" />
<set name="is_freightable" val="false" />
<skills>
- <skill id="3599" level="1" /> <!-- Polearm Multi-attack -->
+ <skill id="3599" level="1" />
+ <!-- Polearm Multi-attack -->
</skills>
我无法找到一种方法来保持元素右侧的注释。 我也想创建新的评论,我可以将它们放在元素之前或之后但不是紧挨着它。
有没有办法可以保留这样的订单?
感谢您的建议!
答案 0 :(得分:0)
没有;从语义上讲,它们是相同的XML文件,您无法控制这些元素的呈现方式。如果要实现这种效果,您必须编写自己的后处理器来重写XML文件。
答案 1 :(得分:0)
我实际上找到了名为DecentXML的图书馆,它帮助我实现了我想要的目标。
private void writeElement(Element parentNode, Element newNode, String comment)
{
try
{
if (comment != null)
{
parentNode.addNodes(new Text("\t"), newNode, new Text(" "), new Comment(" " + comment + " "), new Text("\n\t\t"));
}
else
{
parentNode.addNodes(new Text("\t"), newNode, new Text("\n\t\t"));
}
}
catch (Exception e)
{
LOGGER.warn("Error while writing element", e);
}
}