Jaki jest najprostszy sposób uzyskania reprezentacji ciągu dokumentu XML ( org.w3c.dom.Document
)? Oznacza to, że wszystkie węzły będą znajdować się w jednej linii.
Na przykład z
<root>
<a>trge</a>
<b>156</b>
</root>
(to jest tylko reprezentacja drzewa, w moim kodzie jest to org.w3c.dom.Document
obiekt, więc nie mogę traktować go jako String)
do
"<root> <a>trge</a> <b>156</b> </root>"
Dzięki!
Odpowiedzi:
Zakładając, że
doc
jest to Twój przypadekorg.w3c.dom.Document
:źródło
replaceAll
prawdopodobnie nie jest konieczne, jeśli dodać inną nieruchomość wyjściowy:transformer.setOutputProperty(OutputKeys.INDENT, "no");
writer.getBuffer().toString()
może po prostu byćwriter.toString()
OutputKeys.INDENT
linii, ponieważ wtedy możesz również ustawić ją tak,"yes"
aby zachowywała białe znaki - jeśli tego chcesz (w mojej sytuacji odkryłem, że samo usunięciereplaceAll
nie zadziałało, aby uwzględnić spacje w strunowy).Użyj Apache XMLSerializer
oto przykład: http://www.informit.com/articles/article.asp?p=31349&seqNum=3&rl=1
możesz to również sprawdzić
http://www.netomatix.com/XmlFileToString.aspx
źródło
Najpierw musisz pozbyć się wszystkich znaków nowej linii we wszystkich węzłach tekstowych. Następnie możesz użyć transformacji tożsamości, aby wyświetlić drzewo DOM. Spójrz na javadoc dla
TransformerFactory#newTransformer()
.źródło