我将一个org.w3c.dom.Element
对象传递到我的方法中。我需要看到整个xml字符串,包括它的子节点(整个对象图)。我正在寻找一种方法,可以将Element
转换成我可以System.out.println
的xml格式字符串。只对'Element‘对象使用println()
是行不通的,因为toString()
不会输出xml格式,也不会遍历它的子节点。有没有一种简单的方法,不用写我自己的方法就可以做到这一点?谢谢。
发布于 2009-08-02 20:47:41
假设您想坚持使用标准API...
您可以使用DOMImplementationLS
Document document = node.getOwnerDocument();
DOMImplementationLS domImplLS = (DOMImplementationLS) document
.getImplementation();
LSSerializer serializer = domImplLS.createLSSerializer();
String str = serializer.writeToString(node);
如果声明让您感到困扰,您可以使用transformer:
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();
发布于 2014-04-04 16:02:02
尝试使用单行代码的jcabi-xml:
String xml = new XMLDocument(element).toString();
发布于 2009-08-02 20:02:33
标准JAXP API不支持,为此我使用了JDom库。它有一个打印机功能,格式化选项等。http://www.jdom.org/
https://stackoverflow.com/questions/1219596
复制相似问题