使用Saxon S9API,将DOM文档序列化为输出流的惯用方法是什么?类似于
Serializer result = processor.newSerializer(out); XdmNode source = processor.newDocumentBuilder().build(new DOMSource(doc)); result.serializeNode(source);
但S9API中是否有更正确的方法?
你不想这样做 DocumentBuilder.build() 因为这将使用默认树模型(通常是TinyTree)将整个DOM复制到树中。相反,您可以使用 DocumentBuilder.wrap() (提供DOM文档节点),它只是创建一个XdmNode作为DOM节点的包装器。
DocumentBuilder.build()
DocumentBuilder.wrap()
因此:
Serializer result = processor.newSerializer(out); XdmNode source = processor.newDocumentBuilder().wrap(doc); result.serializeNode(source);