Ral*_*h D 5 java xml encoding domdocument xml-parsing
我正在尝试保存一个树(扩展JTree
),它保存一个XML
文件DOM Object
,改变了它的结构.
我创建了一个新的文档对象,遍历树以成功检索内容(包括XML
文档的原始编码),现在有一个ByteArrayInputStream
具有XML
正确编码的树内容(文档).
问题是我解析时ByteArrayInputStream
编码被自动更改为UTF-8
(在XML
文档中).
有没有办法防止这种情况,并使用正确的编码ByteArrayInputStream
.
还有一点值得补充的是,我已经使用该
transformer.setOutputProperty(OutputKeys.ENCODING, encoding)
方法来检索正确的编码.
任何帮助,将不胜感激.
这是一个更新的答案,因为 OutputFormat 已被弃用:
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
transformer.setOutputProperty(OutputKeys.ENCODING, "ISO-8859-1");
StringWriter writer = new StringWriter();
transformer.transform(new DOMSource(document), new StreamResult(writer));
String output = writer.getBuffer().toString().replaceAll("\n|\r", "");
Run Code Online (Sandbox Code Playgroud)
第二部分将 XML 文档作为字符串返回
经过大量的尝试和错误,我解决了这个问题。
我正在使用
OutputFormat format = new OutputFormat(document);
Run Code Online (Sandbox Code Playgroud)
但将其更改为
OutputFormat format = new OutputFormat(d, encoding, true);
Run Code Online (Sandbox Code Playgroud)
这解决了我的问题。
encoding
我设置的就是指
true
是否设置缩进。
自我注意 - 更仔细地阅读 - 几个小时前我已经看过 javadoc - 如果我能更仔细地阅读就好了。
归档时间: |
|
查看次数: |
31423 次 |
最近记录: |