XML-документ в строку


какой самый простой способ получить строковое представление XML-документа (org.w3c.dom.Document)? То есть все узлы будут находиться на одной линии.

в качестве примера, от

<root>
  <a>trge</a>
  <b>156</b>
</root>

(это только представление дерева, в моем коде это

3 87

3 ответа:

предполагая, что 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", "");

используйте 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().