首頁 > Java > java教程 > 如何使用 JAXP 和 DOM 在 Java 中格式化未格式化的 XML 字串?

如何使用 JAXP 和 DOM 在 Java 中格式化未格式化的 XML 字串?

DDD
發布: 2024-12-18 01:11:17
原創
504 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板