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

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

DDD
リリース: 2024-12-18 01:11:17
オリジナル
501 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート