首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在java中将org.w3c.dom.Element输出为字符串格式?

如何在java中将org.w3c.dom.Element输出为字符串格式?
EN

Stack Overflow用户
提问于 2009-08-02 19:21:53
回答 6查看 99.6K关注 0票数 94

我将一个org.w3c.dom.Element对象传递到我的方法中。我需要看到整个xml字符串,包括它的子节点(整个对象图)。我正在寻找一种方法,可以将Element转换成我可以System.out.println的xml格式字符串。只对'Element‘对象使用println()是行不通的,因为toString()不会输出xml格式,也不会遍历它的子节点。有没有一种简单的方法,不用写我自己的方法就可以做到这一点?谢谢。

EN

回答 6

Stack Overflow用户

发布于 2009-08-02 20:47:41

假设您想坚持使用标准API...

您可以使用DOMImplementationLS

代码语言:javascript
复制
Document document = node.getOwnerDocument();
DOMImplementationLS domImplLS = (DOMImplementationLS) document
    .getImplementation();
LSSerializer serializer = domImplLS.createLSSerializer();
String str = serializer.writeToString(node);

如果声明让您感到困扰,您可以使用transformer

代码语言:javascript
复制
TransformerFactory transFactory = TransformerFactory.newInstance();
Transformer transformer = transFactory.newTransformer();
StringWriter buffer = new StringWriter();
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
transformer.transform(new DOMSource(node),
      new StreamResult(buffer));
String str = buffer.toString();
票数 164
EN

Stack Overflow用户

发布于 2014-04-04 16:02:02

尝试使用单行代码的jcabi-xml

代码语言:javascript
复制
String xml = new XMLDocument(element).toString();
票数 3
EN

Stack Overflow用户

发布于 2009-08-02 20:02:33

标准JAXP API不支持,为此我使用了JDom库。它有一个打印机功能,格式化选项等。http://www.jdom.org/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1219596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档