当我创建一个jdom文档(Document doc = new Document();)时,默认情况下我只在xml标题中看到版本和编码:
<?xml version="1.0" encoding="utf-8" ?>
如何添加独立属性以获取:
<?xml version="1.0" encoding="utf-8" standalone="no" ?>
答案 0 :(得分:4)
在文档到达JDOM之前,标头通常被XMLParser剥离。我很确定你的意思是你正在查看来自JDOM的输出,它会重新添加XML声明。
您可以通过使用此自定义类创建custom XMLOutput processor ...来调整XML声明的处理方式,覆盖printDeclaration方法并将其更改为执行您需要的操作....
public static final XMLOutputProcessor XMLOUTPUT = new AbstractXMLOutputProcessor() {
@Override
protected void printDeclaration(final Writer out, final FormatStack fstack) throws IOException {
write(out, "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?> ");
write(out, fstack.getLineSeparator());
}
};
然后,当您想要使用它时,将其传递给XMLOutputter:
XMLOutputter xout = new XMLOutputter(Format.getPrettyFormat(), XMLOUTPUT);
xout.output(doc, System.out);
很明显,这样做的机制相当麻烦。我会查看有哪些替代方案,也许可以在将来的版本中解决这个问题。