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

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

98 голосов
/ 28 марта 2011

Какой самый простой способ получить строковое представление 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>"

Спасибо!

Ответы [ 3 ]

192 голосов
/ 28 марта 2011

Предполагая, что 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 голосов
/ 28 марта 2011

Используйте Apache XMLSerializer

вот пример: http://www.informit.com/articles/article.asp?p=31349&seqNum=3&rl=1

Вы также можете проверить это

http://www.netomatix.com/XmlFileToString.aspx

1 голос
/ 28 марта 2011

Сначала вам нужно избавиться от всех символов новой строки во всех ваших текстовых узлах.Затем вы можете использовать преобразование идентичности для вывода вашего дерева DOM.Посмотрите на Javadoc для TransformerFactory#newTransformer().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...