как преобразовать объект документа dom4j в строку - PullRequest
6 голосов
/ 07 апреля 2011

Просто пытаюсь найти способ конвертировать содержимое документа Dom4J в строку.Он имеет asXML () API, который преобразует содержимое в XML.В моем случае я редактирую не-XML структуру DOM, используя Dom4J, и пытаюсь преобразовать содержимое в строку.Я знаю, что это возможно в случае документа w3c.

Будут оценены любые указатели.

Спасибо

Ответы [ 3 ]

6 голосов
/ 22 июля 2016

asXml () возвращает строку из объекта Document

String text = document.asXML()
3 голосов
/ 07 апреля 2011

Почему ты не можешь просто сделать:

String result = dom.toXML().toString();

Если вы хотите проделать долгий путь, тогда вы используете TransformerFactory , чтобы преобразовать DOM во что угодно. Первое, что вы делаете, это оборачиваете свой документ в DOMSource

DOMSource domSource = new DOMSource(document);

Подготовьте StringWriter , чтобы мы могли направить поток в строку:

StringWriter writer = new StringWriter();
StreamResult streamResult = new StreamResult(writer);

Подготовьте TransformationFactory , чтобы вы могли преобразовать DOM в указанный источник:

TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory .newTransformer();
transformer.transform(domSource, streamResult);

Наконец, вы получите String :

String result = writer.toString();

Надеюсь, это помогло!

0 голосов
/ 25 ноября 2011

Как вы можете иметь не XML dom,

Dom - это, по сути, документ XML,

asXml () возвращает строковое представление Dom, которое является XML,

если вам нужно вытащить только текстовые значения, вы можете перебирать элементы dom и getValue () для элементов, но то, что вы запрашиваете, похоже на строку xml,

...