XML 格式化指的是将 XML 数据以一种易读的方式呈现,即添加适当的缩进、换行符等,让 XML 文档的结构更加清晰,便于阅读和编辑。下面为你介绍JAVA语言开发下进行 XML 格式化的方法。

在 Java 中,可以借助javax.xml.transform包来格式化 XML。示例代码如下:

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 org.w3c.dom.Document;
import java.io.StringReader;
import java.io.StringWriter;

public class XmlFormatter {
    public static String formatXml(String xml) {
        try {
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            DocumentBuilder builder = factory.newDocumentBuilder();
            Document document = builder.parse(new org.xml.sax.InputSource(new StringReader(xml)));

            TransformerFactory transformerFactory = TransformerFactory.newInstance();
            Transformer transformer = transformerFactory.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) {
            e.printStackTrace();
            return xml;
        }
    }

    public static void main(String[] args) {
        String xml = "<library><book><title>《百年孤独》</title><author>加西亚·马尔克斯</author><year>1967</year></book><book><title>《呐喊》</title><author>鲁迅</author><year>1923</year></book></library>";
        String formattedXml = formatXml(xml);
        System.out.println(formattedXml);
    }
}