Apa cara termudah untuk mendapatkan representasi String dari XML Document ( org.w3c.dom.Document
)? Artinya semua node akan berada dalam satu baris.
Sebagai contoh, dari
<root>
<a>trge</a>
<b>156</b>
</root>
(ini hanya representasi pohon, dalam kode saya itu adalah org.w3c.dom.Document
objek, jadi saya tidak bisa memperlakukannya sebagai String)
untuk
"<root> <a>trge</a> <b>156</b> </root>"
Terima kasih!
Jawaban:
Dengan asumsi
doc
adalah contoh Anda dariorg.w3c.dom.Document
:sumber
replaceAll
mungkin tidak diperlukan jika Anda menambahkan properti output yang lain:transformer.setOutputProperty(OutputKeys.INDENT, "no");
writer.getBuffer().toString()
hanya bisawriter.toString()
OutputKeys.INDENT
baris secara eksplisit , karena Anda juga dapat mengaturnya"yes"
untuk mempertahankan spasi - jika itu yang Anda inginkan (dalam situasi saya, saya telah menemukan bahwa hanya menghapusreplaceAll
tidak berhasil untuk menyertakan spasi di tali).Gunakan Apache XMLSerializer
inilah contohnya: http://www.informit.com/articles/article.asp?p=31349&seqNum=3&rl=1
Anda bisa memeriksanya juga
http://www.netomatix.com/XmlFileToString.aspx
sumber
Pertama, Anda perlu menyingkirkan semua karakter baris baru di semua node teks Anda. Kemudian Anda dapat menggunakan transformasi identitas untuk mengeluarkan pohon DOM Anda. Lihat javadoc untuk
TransformerFactory#newTransformer()
.sumber