ホームページ >Java >&#&チュートリアル >JAXP と DOM を使用して Java でフォーマットされていない XML 文字列をフォーマットする方法

JAXP と DOM を使用して Java でフォーマットされていない XML 文字列をフォーマットする方法

DDD
DDDオリジナル
2024-12-18 01:11:17499ブラウズ

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

Java での XML 文字列のフォーマット

Java 開発者は、XML 文字列に改行や改行が含まれていない状況に遭遇することがあります。インデントがあり、適切にフォーマットされた文字列に変換する必要があります。これは、デバッグの目的や、XML データを読みやすい方法で表示する場合に特に役立ちます。

このタスクを実行するには、Java API for XML Processing (JAXP) と Document Object Model (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))));

次に、フォーマットされた XML を保持する StreamResult オブジェクトを作成します。 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。