使用Transformer类可将XML字符串格式化为易读形式,首先通过DocumentBuilder解析XML字符串为Document对象,再利用Transformer设置缩进和编码等属性,最后将DOM树转换为带格式的字符串输出。示例代码展示了从解析到转换的完整流程,并封装为静态工具方法便于复用,注意处理异常及确保输入XML合法。

在Java中格式化输出XML字符串,主要是通过Transformer类来实现美化(pretty print)功能。这种方式可以将原始的、无缩进或紧凑型的XML字符串转换为具有缩进、换行等可读性更强的格式。
核心思路是利用javax.xml.transform包中的类将XML内容解析并重新输出为格式化后的字符串。
步骤说明:
Document对象(需要借助DocumentBuilder)Transformer设置输出属性,如缩进、编码等import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.StringReader;
import java.io.StringWriter;
public class FormatXml {
public static String formatXml(String xmlString) {
try {
// 解析字符串为Document
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document document = builder.parse(new InputSource(new StringReader(xmlString)));
// 配置Transformer进行格式化
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
// 执行转换
StringWriter writer = new StringWriter();
transformer.transform(new DOMSource(document), new StreamResult(writer));
return writer.toString();
} catch (Exception e) {
throw new RuntimeException("XML格式化失败", e);
}
}
// 使用示例
public static void main(String[] args) {
String xml = "<root><child name=\"test\"/></root>";
System.out.println(formatXml(xml));
}
}
实际使用中需要注意以下几点:
立即学习“Java免费学习笔记(深入)”;
本文档主要讲述的是Android数据格式解析对象JSON用法;JSON可以将Java对象转成json格式的字符串,可以将json字符串转换成Java。比XML更轻量级,Json使用起来比较轻便和简单。JSON数据格式,在Android中被广泛运用于客户端和服务器通信,在网络数据传输与解析时非常方便。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
0
Jsoup或JDOM,也有更简洁的方法,但原生方式更通用可以将上述逻辑封装成一个静态工具方法,在多个项目中复用。
例如创建XmlUtils.format(String xml)方法,直接返回美化后的字符串,调用时只需一行代码即可完成格式化。
基本上就这些。只要掌握Transformer的使用,Java中格式化XML字符串并不复杂,关键是正确解析输入并设置合适的输出属性。
以上就是Java中如何格式化输出XML字符串_Java格式化输出XML字符串方法的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号