我一直在尝试使用javax.xml.stream.XMLOutputFactory.createXMLStreamWriter()将XML写为输出。不使用UTF-8时卡在XML声明上。
String encoding = "ISO-8859-1";
File testFile = new File(xmlOutFile);
OutputStream ops = new FileOutputStream(testFile);
xmlWriter = factory.createXMLStreamWriter(ops,encoding);
...
String version = "1.0";
String encoding = "ISO-8859-1";
xmlWriter.writeStartDocument(encoding, version);
重写的XML输入文件;
<?xml version="1.0" encoding="ISO-8859-1"?>
<definition attr1="toady"></definition>
没有抛出错误,文件已创建,但它是空的。 如果我将xmlWriter设置为UTF-8,则会写入该文件。
答案 0 :(得分:0)
这里唯一的问题是缺少文件关闭语句:xmlWriter.close()。 这并不明显,因为在我的实际代码中,该过程在第一个解析器中以END_DOCUMENT开始,该解析器必须使其生成到生成XML的END_DOCUMENT处理程序。 无论如何,我被UTF-8的工作所抛弃了。