Java での非構造化 XML 文字列のフォーマット
フォーマットなしで Java 文字列としてエンコードされた XML 文字列があるため、それを変換する必要があります適切なインデントと改行を使用して文字列に変換します。
これを実現するには、次を利用できます。 Java Transformer クラスと OutputKeys および DOMSource クラス。
まず、Transformer クラスの新しいインスタンスを作成します。
Transformer transformer = TransformerFactory.newInstance().newTransformer();
出力にインデントを追加するように Transformer を設定します。
transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
次に、StreamResult オブジェクトを初期化して、変換された結果を文字列:
StreamResult result = new StreamResult(new StringWriter());
XML 文字列から DOMSource オブジェクトを作成します:
DOMSource source = new DOMSource(doc);
最後に、Transformer を使用してソース XML を目的の形式の出力に変換します:
transformer.transform(source, result); String xmlString = result.getWriter().toString();
この変換後、xmlString 変数にはフォーマットされた XML が含まれます。以下に例を示します:
transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2"); StreamResult result = new StreamResult(new StringWriter()); DOMSource source = new DOMSource(doc); transformer.transform(source, result); String xmlString = result.getWriter().toString(); System.out.println(xmlString);
出力:
<?xml version="1.0" encoding="UTF-8"?> <root> <tag> <nested>hello</nested> </tag> </root>
以上がJava で非構造化 XML 文字列をフォーマットするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。