任何编码中的StreamWriting XML

时间:2014-10-16 07:04:29

标签: xml stax

我一直在尝试使用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,则会写入该文件。

1 个答案:

答案 0 :(得分:0)

这里唯一的问题是缺少文件关闭语句:xmlWriter.close()。 这并不明显,因为在我的实际代码中,该过程在第一个解析器中以END_DOCUMENT开始,该解析器必须使其生成到生成XML的END_DOCUMENT处理程序。 无论如何,我被UTF-8的工作所抛弃了。