Какой самый простой способ получить строковое представление XML-документа ( org.w3c.dom.Document
)? То есть все узлы будут на одной линии.
Например, из
<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
:источник
replaceAll
, вероятно , не нужно , если добавить еще один выходной свойство:transformer.setOutputProperty(OutputKeys.INDENT, "no");
writer.getBuffer().toString()
может быть простоwriter.toString()
OutputKeys.INDENT
строки, потому что тогда вы также можете установить его так, чтобы"yes"
оставить пробелы - если это то, что вы хотите (в моей ситуации я обнаружил, что простое удалениеreplaceAll
не помогло включить пробелы в строка).Используйте Apache XMLSerializer
вот пример: http://www.informit.com/articles/article.asp?p=31349&seqNum=3&rl=1
вы также можете проверить это
http://www.netomatix.com/XmlFileToString.aspx
источник
Сначала вам нужно избавиться от всех символов новой строки во всех ваших текстовых узлах. Затем вы можете использовать преобразование идентичности для вывода своего дерева DOM. Посмотрите на javadoc для
TransformerFactory#newTransformer()
.источник