Java w3c dom的合龙与格式化输出
Java w3c dom的合并与格式化输出
遇到需要将几个W3C标准的Document文档简单合并,一个主文档,其他的文档并列按照顺序放在主文档的孩子节点上就行了。。。
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
原文出自:http://charyle.iteye.com/blog/1193846
遇到需要将几个W3C标准的Document文档简单合并,一个主文档,其他的文档并列按照顺序放在主文档的孩子节点上就行了。。。
public static void combinDocument(Document root,List<Document> targets){ for(Document d:targets){ root.getFirstChild().appendChild( root.adoptNode(d.getDocumentElement())); } }为了便于调试,需要将合并的文档格式化输出,其中主要遇到了缩进的问题。找到个属性,设置下搞定。
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); return (writer.getBuffer().toString()); }
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
原文出自:http://charyle.iteye.com/blog/1193846