如何在java中将org.w3c.dom.Element输出为字符串格式?
我有一个对象传递到我的方法中。我需要查看整个xml字符串,包括其子节点(整个对象图)。我正在寻找一种可以将转换为xml格式字符串的方法。只是在“Element”对象上不起作用,因为不会输出xml格式,也不会通过其子节点。有没有一种简单的方法,而不写我自己的方法来做到这一点?谢谢。org.w3c.dom.Element
Element
System.out.println
println()
toString()
我有一个对象传递到我的方法中。我需要查看整个xml字符串,包括其子节点(整个对象图)。我正在寻找一种可以将转换为xml格式字符串的方法。只是在“Element”对象上不起作用,因为不会输出xml格式,也不会通过其子节点。有没有一种简单的方法,而不写我自己的方法来做到这一点?谢谢。org.w3c.dom.Element
Element
System.out.println
println()
toString()
假设你想坚持使用标准的API...
您可以使用 DOMImplementationLS:
Document document = node.getOwnerDocument();
DOMImplementationLS domImplLS = (DOMImplementationLS) document
.getImplementation();
LSSerializer serializer = domImplLS.createLSSerializer();
String str = serializer.writeToString(node);
如果<?xml version=“1.0” encoding=“UTF-16”?>声明困扰着您,则可以改用转换器:
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();
无需 xml 声明 () 即可获取的简单 4 行代码String
<?xml version="1.0" encoding="UTF-16"?>
org.w3c.dom.Element
DOMImplementationLS lsImpl = (DOMImplementationLS)node.getOwnerDocument().getImplementation().getFeature("LS", "3.0");
LSSerializer serializer = lsImpl.createLSSerializer();
serializer.getDomConfig().setParameter("xml-declaration", false); //by default its true, so set it to false to get String without xml-declaration
String str = serializer.writeToString(node);