设置输出XML文件中的行宽和文件类型。

10 浏览
0 Comments

设置输出XML文件中的行宽和文件类型。

注意到一些现有的代码读取和写入一个简单的XML文件(由DTD定义),使用了已弃用的类。希望用非废弃的类替换以下内容。由于使用的是Java 6,希望使用包含在XML处理中的包,而不是第三方工具(尽管像jdom这样的标准工具也是可能的)。

OutputFormat format = new OutputFormat( doc );
format.setLineWidth( 100 );
format.setIndenting( true );
format.setIndent( 2 );

下面是一个使用在各种SO答案中提到的TransformerFactory的尝试。上面指定缩进似乎并不难,尽管没有那么明显。但如何指定行长度呢?

TransformerFactory transformerFactory = TransformerFactory.newInstance();
transformerFactory.setAttribute("indent-number", Integer.valueOf(4));
Transformer transformer = transformerFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
DOMSource source = new DOMSource(doc);
StreamResult result =  new StreamResult(writer);
transformer.transform(source, result);

还注意到文件是以DOS格式创建的,而上面的代码是Unix格式。有比这更好的方法吗?这是一个相当简单的文件,不需要太多的格式化,只是希望它能被人和程序阅读。

0