如何将dom4j文档对象转换为字符串

9

我正在尝试找到一种将Dom4J文档内容转换为字符串的方法。它有一个 asXML() API,可以将内容转换为XML格式。在我的情况下,我正在使用Dom4J编辑非XML DOM结构,并尝试将内容转换为字符串。我知道对于w3c文档来说这是可能的。

如果有任何提示,将不胜感激。

谢谢


2
你解决了吗?为什么 asXml() 对你不起作用?我不明白你需要什么,你能澄清一下你的问题吗? - javanna
3个回答

12

asXml()方法返回Document对象的字符串表示。

String text = document.asXML()

3

为什么不能直接这样做:

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 result = writer.toString();

希望这有所帮助!

他说他想要非XML格式,但他没有详细说明所需的格式是什么。你的解决方案生成的是XML。 - Alan Krueger

0

如何拥有一个非 XML dom?

实质上,Dom 是一个 XML 文档。

asXml() 返回 Dom 的字符串表示形式,即 XML。

如果您只需要提取文本值,则可以遍历 dom 并在元素上使用 getValue(),但您所要求的似乎是 xml 字符串。


可能是因为你正在使用SAX? - Enerccio

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接