在 Java 中格式化非结构化 XML 字符串
您有一个编码为 Java 字符串且没有任何格式的 XML 字符串,您需要将其转换转换为具有适当缩进和换行的字符串。
要实现此目的,您可以使用 Java Transformer 类使用 OutputKeys 和 DOMSource 类。
首先,创建 Transformer 类的新实例:
Transformer transformer = TransformerFactory.newInstance().newTransformer();
配置 Transformer 以向输出添加缩进:
transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
现在,初始化一个 StreamResult 对象以捕获转换后的结果作为字符串:
StreamResult result = new StreamResult(new StringWriter());
从 XML 字符串创建 DOMSource 对象:
DOMSource source = new DOMSource(doc);
最后,使用 Transformer 将源 XML 转换为所需的格式化输出:
transformer.transform(source, result); String xmlString = result.getWriter().toString();
经过此转换,xmlString 变量将包含格式化的 XML。这是一个示例:
transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2"); StreamResult result = new StreamResult(new StringWriter()); DOMSource source = new DOMSource(doc); transformer.transform(source, result); String xmlString = result.getWriter().toString(); System.out.println(xmlString);
输出:
<?xml version="1.0" encoding="UTF-8"?> <root> <tag> <nested>hello</nested> </tag> </root>
以上是如何在 Java 中格式化非结构化 XML 字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!