搜索
首页Javajava教程如何使用 JAXP 和 DOM 在 Java 中格式化未格式化的 XML 字符串?

How to Format an Unformatted XML String in Java Using JAXP and DOM?

在 Java 中格式化 XML 字符串

作为 Java 开发人员,您可能会遇到这样的情况:XML 字符串没有换行符或缩进,需要将其转换为格式良好的字符串。这对于调试目的或以可读方式呈现 XML 数据特别有用。

要完成此任务,您可以利用 Java API for XML 处理 (JAXP) 和文档对象模型 (DOM) 来转换XML 字符串转换为格式化表示。

首先,从 TransformerFactory 创建一个新的 Transformer 对象。将“INDENT”和“{http://xml.apache.org/xslt}indent-amount”属性分别设置为“yes”和“2”,以启用换行和缩进:

Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");

接下来,将XML字符串转换为DOMSource对象:

String inputXml = "<tag><nested>hello</nested></tag>";
DOMSource source = new DOMSource(DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new InputSource(new StringReader(inputXml))));

然后,创建一个StreamResult对象来保存格式化的XML string:

StreamResult result = new StreamResult(new StringWriter());

最后,使用转换器将源 DOM 转换为格式化的 XML 字符串:

transformer.transform(source, result);

result.getWriter() 对象将包含格式化的 XML字符串:

String formattedXml = result.getWriter().toString();

示例:

String unformattedXml = "hello";
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
DOMSource source = new DOMSource(DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new InputSource(new StringReader(unformattedXml))));

StreamResult result = new StreamResult(new StringWriter());
transformer.transform(source, result);
System.out.println(result.getWriter().toString());

输出:

<?xml version="1.0" encoding="UTF-8"?>
<tag>
  <nested>hello</nested>
</tag>

以上是如何使用 JAXP 和 DOM 在 Java 中格式化未格式化的 XML 字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!

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

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能