Qual é a maneira mais simples de obter a representação String de um Documento XML ( org.w3c.dom.Document
)? Ou seja, todos os nós estarão em uma única linha.
Por exemplo, de
<root>
<a>trge</a>
<b>156</b>
</root>
(esta é apenas uma representação em árvore, no meu código é um org.w3c.dom.Document
objeto, então não posso tratá-lo como uma String)
para
"<root> <a>trge</a> <b>156</b> </root>"
Obrigado!
Respostas:
Supondo que
doc
seja sua instância deorg.w3c.dom.Document
:fonte
replaceAll
Provavelmente não é necessário se você adicionar outra propriedade de saída:transformer.setOutputProperty(OutputKeys.INDENT, "no");
writer.getBuffer().toString()
pode ser apenaswriter.toString()
OutputKeys.INDENT
linha, porque então você também pode configurá-la para"yes"
manter o espaço em branco - se for isso que você deseja (na minha situação, descobri que apenas removerreplaceAll
não funcionou para incluir o espaço em branco no corda).Use o Apache XMLSerializer
aqui está um exemplo: http://www.informit.com/articles/article.asp?p=31349&seqNum=3&rl=1
você pode verificar isso também
http://www.netomatix.com/XmlFileToString.aspx
fonte
Primeiro você precisa se livrar de todos os caracteres de nova linha em todos os nós de texto. Em seguida, você pode usar uma transformação de identidade para gerar sua árvore DOM. Olhe para o javadoc para
TransformerFactory#newTransformer()
.fonte