使用 S9API 序列化程序序列化 DOM 文档的惯用方法是什么
What is idiomatic way to serialize DOM document with S9API serializer
使用 Saxon S9API,将 DOM 文档序列化为输出流的惯用方法是什么?像
Serializer result = processor.newSerializer(out);
XdmNode source = processor.newDocumentBuilder().build(new DOMSource(doc));
result.serializeNode(source);
有效,但在 S9API 中是否有更正确的方法?
您不想执行 DocumentBuilder.build()
,因为这会将整个 DOM 复制到使用默认树模型(通常是 TinyTree)的树中。相反,您可以使用 DocumentBuilder.wrap()
(提供 DOM 文档节点),它只是创建一个 XdmNode 作为 DOM 节点的包装器。
所以:
Serializer result = processor.newSerializer(out);
XdmNode source = processor.newDocumentBuilder().wrap(doc);
result.serializeNode(source);
使用 Saxon S9API,将 DOM 文档序列化为输出流的惯用方法是什么?像
Serializer result = processor.newSerializer(out);
XdmNode source = processor.newDocumentBuilder().build(new DOMSource(doc));
result.serializeNode(source);
有效,但在 S9API 中是否有更正确的方法?
您不想执行 DocumentBuilder.build()
,因为这会将整个 DOM 复制到使用默认树模型(通常是 TinyTree)的树中。相反,您可以使用 DocumentBuilder.wrap()
(提供 DOM 文档节点),它只是创建一个 XdmNode 作为 DOM 节点的包装器。
所以:
Serializer result = processor.newSerializer(out);
XdmNode source = processor.newDocumentBuilder().wrap(doc);
result.serializeNode(source);