java - 使用 jdom 创建 xml,如何设置独立的 ="no"属性

标签 java xml jdom

当我创建一个 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/

相关文章:

java - 从大字符串中获取特定的子字符串

java - XML 解析:如何将 XML 文件中的下一个元素放入字符串中? (Java/安卓)

java - 使用 jdom 向现有 xml 添加内容

java从文件夹中删除文件

java - 对于 eclipse,哪个 -vm 更可取?

java - 导出的 Jar 文件不会读取 jar 内的文件

xml - 处理垂直制表符和其他无效 xml 字符的最佳实践

java - 如何使用 Camel 和 Java DSL 创建具有多个连接的 ftp 调用的路由?

java - 如何使用 Factory 在 TestNG 中仅包含特定方法

java - 从 jdom 中的文档读取文本时出错?