XML-документ для строки
Какой самый простой способ получить строковое представление 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>"
Спасибо!
Ответы
Ответ 1
Предполагая, что 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", "");
Ответ 2
Используйте XML-сериализатор Apache
вот пример:
http://www.informit.com/articles/article.asp?p=31349&seqNum=3&rl=1
вы также можете проверить это
http://www.netomatix.com/XmlFileToString.aspx
Ответ 3
Сначала вам нужно избавиться от всех символов новой строки во всех текстовых узлах. Затем вы можете использовать преобразование идентичности для вывода своего дерева DOM. Посмотрите на javadoc для TransformerFactory#newTransformer()
.