首页 >Java >java教程 >如何在 Java 中格式化非结构化 XML 字符串?

如何在 Java 中格式化非结构化 XML 字符串?

Susan Sarandon
Susan Sarandon原创
2024-12-14 13:43:11832浏览

How to Format Unstructured XML Strings in Java?

在 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn