org.w3c.dom.Node 转换成xml string

来源:互联网 发布:如何使用大数据分析 编辑:程序博客网 时间:2024/06/07 16:32
/** * 将传入的一个DOM Node对象输出成字符串。如果失败则返回一个空字符串""。 *  * @param node *            DOM Node 对象。 * @return a XML String from node */public static String NodetoString(Node node) {Transformer transformer = null;String result = null;if (node == null) {throw new IllegalArgumentException();}try {transformer = TransformerFactory.newInstance().newTransformer();} catch (Exception e) {throw new RuntimeException(e.getMessage());}if (transformer != null) {try {StringWriter sw = new StringWriter();transformer.transform(new DOMSource(node), new StreamResult(sw));return sw.toString();} catch (TransformerException te) {throw new RuntimeException(te.getMessage());}}return result;}

若传入的Node 属性查出来的值,调用该方法只能得到

<?xml version="1.0" encoding="UTF-8"?>和属性值

Node 有个方法getOwnerDocument()可以获得到Document对象,也可以把Node转换成String(但是该得到的是所有节点的内容,而不是单个你想要查看节点的内容)

public static String toString(Document doc)throws TransformerFactoryConfigurationError, TransformerException {DOMSource source = new DOMSource(doc);StringWriter writer = new StringWriter();Result result = new StreamResult(writer);Transformer transformer = TransformerFactory.newInstance().newTransformer();transformer.setOutputProperty(OutputKeys.INDENT, "yes");transformer.setOutputProperty(OutputKeys.CDATA_SECTION_ELEMENTS, "yes");transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");transformer.transform(source, result);String string = (writer.getBuffer().toString());System.out.print(string);return string;}



0 0