Java:JDOM2在xml中写入ascii字符

Java:JDOM2在xml中写入ascii字符,java,xml,ascii,jdom-2,Java,Xml,Ascii,Jdom 2,我正在使用JDOM2 客户希望拥有以下产品线: <VT xml:space="preserve">&#50;&#48;</VT> 我还使用: format = Format.getPrettyFormat(); format.setEncoding("ISO-8859-1"); format.setExpandEmptyElements(true); XMLOutputter out; OutputStreamWriter fw = null; out

我正在使用
JDOM2

客户希望拥有以下产品线:

<VT xml:space="preserve">&#50;&#48;</VT>
我还使用:

format = Format.getPrettyFormat();
format.setEncoding("ISO-8859-1");
format.setExpandEmptyElements(true);
XMLOutputter out;
OutputStreamWriter fw = null;

out = new XMLOutputter();
out.setFormat(format);

try {
    fw = new OutputStreamWriter(new FileOutputStream(file));
    PrintStream printStream = System.out;

    // fw = new FileWriter(file);

    out.output(doc, printStream);

在JDOM中,您可以建立规则,告知输出格式化程序何时转义字符输出。这是非常非常规的,但您可能会构建一个逃逸策略,如:

private static final EscapeStrategy alldigits = new EscapeStrategy() {
    @Override
    public boolean shouldEscape(char ch) {
        return Character.isDigit(ch) || DefaultEscapeStrategy.shouldEscape(ch);
    }
};
上述实例将导致转义所有数字和任何其他常规转义字符

然后,您可以在输出格式化程序的实例上设置该策略:

format = Format.getPrettyFormat();
format.setEncoding("ISO-8859-1");
format.setExpandEmptyElements(true);
format.setEscapeStrategy(alldigits);
请在此处阅读有关EscapeStragy的更多信息:


它在JDOM中的使用方式:这里:

在JDOM中,您可以建立规则,告诉输出格式化程序何时转义字符输出。这是非常非常规的,但您可能会构建一个逃逸策略,如:

private static final EscapeStrategy alldigits = new EscapeStrategy() {
    @Override
    public boolean shouldEscape(char ch) {
        return Character.isDigit(ch) || DefaultEscapeStrategy.shouldEscape(ch);
    }
};
上述实例将导致转义所有数字和任何其他常规转义字符

然后,您可以在输出格式化程序的实例上设置该策略:

format = Format.getPrettyFormat();
format.setEncoding("ISO-8859-1");
format.setExpandEmptyElements(true);
format.setEscapeStrategy(alldigits);
请在此处阅读有关EscapeStragy的更多信息:


它在JDOM中的使用方式:这里:

XML规范表明这两种格式是相同的。他们之间没有区别。这类似于1000毫米和1米之间的差异——除了在这种情况下,惯例是使用
2
格式,而不是
2。如果您的客户坚持使用
2类型格式然后他们的系统没有使用符合标准的XML解析器(您应该建议他们使用JDOM;-)@rolfl谢谢,这也是我所想的。但是,JDOM-2中是否有打印ascii格式的可能性?XML规范表明这两种格式是相同的。他们之间没有区别。这类似于1000毫米和1米之间的差异——除了在这种情况下,惯例是使用
2
格式,而不是
2。如果您的客户坚持使用
2类型格式然后他们的系统没有使用标准兼容的XML解析器(您应该建议他们使用JDOM;-)@rolfl谢谢,这也是我所想的。但是,JDOM-2中是否有打印ascii格式的可能性?再次感谢,这在整个XML中造成了很多麻烦。此外,这将2转换为2;而不是我想要的2;因此,这将导致问题,让这种情况仅在本地发生,删除x并添加18…:再次感谢,这在整个xml中造成了很多麻烦。此外,这将2转换为2;而不是我想要的2;因此,这将导致问题,让这种情况仅在本地发生,删除x并添加18…:D