0
Transformer tf = TransformerFactory.newInstance().newTransformer();
tf.setOutputProperty(OutputKeys.INDENT, "yes");
tf.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
tf.transform(new StreamSource(reader), new StreamResult(writer));
上記のコードは私に次のような結果得られます。JavaでXML属性をきれいに印刷するには?
<Response>
<Head>ERROR</Head>
<Body>
<ERROR code="1000" reason="ServerSOAPFaultException" description="Fault occurred while processing."/>
</Body>
</Response>
それはないインデントのxml-属性を行いますが、私は同様にインデントされるXMLは、属性が必要:
<Response>
<Head>ERROR</Head>
<Body>
<ERROR code="1000"
reason="ServerSOAPFaultException"
description="Fault occurred while processing."/>
</Body>
</Response>
どのようにそれ?
サンプルコードを提供できますか? –
SaxonはJAXPインターフェイスをサポートしているので、すでに持っているコードを使うことができます。クラスパスにSaxonを置くだけです。 –
私のプロジェクトに[Saxon-HE dependency](https://mvnrepository.com/artifact/net.sf.saxon/Saxon-HE/9.7.0-15)を追加しました。属性のインデントが開始されましたが、動作します多くの属性を含む要素に対しては、3〜4個の属性しか持たない要素に対しては機能しません。 saxon:line-lengthプロパティに小さな値を設定する方法を説明できますか? –