Java DOM 评论排序
Java DOM comments ordering
我最近使用 Java 的 DOM 解析器制作了一个解析器,它加载 xml 并更正一些元素、属性等。
问题是输出格式没有按照我希望的方式保留注释。
情况如下:
@@ -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>
我找不到在元素右侧保留注释的方法。
我还想创建新评论,我可以将它们放在元素之前或之后,但不能紧挨着它。
有什么办法可以保留这样的顺序吗?
多谢指教!
否;从语义上讲,它们是相同的 XML 文件,您无法控制这些元素的呈现方式。如果您想实现此效果,您必须编写自己的 post-处理器来重写 XML 文件。
我实际上找到了一个名为 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);
}
}
我最近使用 Java 的 DOM 解析器制作了一个解析器,它加载 xml 并更正一些元素、属性等。 问题是输出格式没有按照我希望的方式保留注释。
情况如下:
@@ -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>
我找不到在元素右侧保留注释的方法。 我还想创建新评论,我可以将它们放在元素之前或之后,但不能紧挨着它。
有什么办法可以保留这样的顺序吗?
多谢指教!
否;从语义上讲,它们是相同的 XML 文件,您无法控制这些元素的呈现方式。如果您想实现此效果,您必须编写自己的 post-处理器来重写 XML 文件。
我实际上找到了一个名为 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);
}
}