XMLドキュメント(org.w3c.dom.Document
)の文字列表現を取得する最も簡単な方法は何ですか?つまり、すべてのノードが1行になります。
例として、から
<root>
<a>trge</a>
<b>156</b>
</root>
(これはツリー表現にすぎず、私のコードではorg.w3c.dom.Document
オブジェクトなので、文字列として扱うことはできません)
に
"<root> <a>trge</a> <b>156</b> </root>"
ありがとう!
doc
がorg.w3c.dom.Document
のインスタンスであると仮定します:
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
StringWriter writer = new StringWriter();
transformer.transform(new DOMSource(doc), new StreamResult(writer));
String output = writer.getBuffer().toString().replaceAll("\n|\r", "");
Apache XMLSerializerを使用する
以下に例を示します: http://www.informit.com/articles/article.asp?p=31349&seqNum=3&rl=1
これも確認できます
まず、すべてのテキストノードのすべての改行文字を削除する必要があります。その後、ID変換を使用してDOMツリーを出力できます。 TransformerFactory#newTransformer()
のjavadocを見てください。