当我创建一个 jdom 文档 (Document doc = new Document();) 时,默认情况下我只在 xml header 中看到版本和编码:
<?xml version="1.0" encoding="utf-8" ?>
如何添加独立属性以获取:
<?xml version="1.0" encoding="utf-8" standalone="no" ?>
最佳答案
header 通常在文档到达 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);
很明显,这样做的机制相当繁琐。我将研究有哪些替代方案,并可能在未来的版本中解决此问题。
关于java - 使用 jdom 创建 xml,如何设置独立的 ="no"属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21170732/