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