我有一些读取XML文件的代码,对它进行格式化,然后再输出到同一个文件。但是,如果没有定义编码,输出XML将定义UTF-8。有没有简单的方法来解析Java中的XML而不添加默认编码?
例如:
<?xml version="1.0"?>
变为:
<?xml version="1.0" encoding="UTF-8"?>
我想知道是否有任何的方式来保存任何编码(或缺乏编码),这是有过吗?
这里是我当前的代码:
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document document = docBuilder.parse(file);
OutputFormat format = new OutputFormat(document);
format.setLineWidth(65);
format.setIndenting(true);
format.setIndent(2);
Writer out = new StringWriter();
XMLSerializer serializer = new XMLSerializer(out, format);
serializer.serialize(document);
//custom method to write file
writeFile(filePath, out.toString());
任何帮助表示赞赏。谢谢。
+1的详细信息。 – prabugp
这工作完美。如果我定义了编码,它会将其输出并输出确切的一个;如果我没有定义它,将不会输出默认值。感谢您的详细解释。这是一个很大的帮助。另外,我将为XML使用一些自定义解释器,并且遇到了一些以不同方式处理编码指定和编码歧义文件的地方。所以在格式化时我想保持原样。再次感谢! – NotACleverMan