代码之家  ›  专栏  ›  技术社区  ›  jelovirt

使用S9API序列化程序序列化DOM文档的惯用方法是什么

  •  1
  • jelovirt  · 技术社区  · 8 年前

    使用Saxon S9API,将DOM文档序列化为输出流的惯用方法是什么?类似于

    Serializer result = processor.newSerializer(out);
    XdmNode source = processor.newDocumentBuilder().build(new DOMSource(doc));
    result.serializeNode(source);
    

    但S9API中是否有更正确的方法?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Michael Kay    8 年前

    你不想这样做 DocumentBuilder.build() 因为这将使用默认树模型(通常是TinyTree)将整个DOM复制到树中。相反,您可以使用 DocumentBuilder.wrap() (提供DOM文档节点),它只是创建一个XdmNode作为DOM节点的包装器。

    因此:

    Serializer result = processor.newSerializer(out);
    XdmNode source = processor.newDocumentBuilder().wrap(doc);
    result.serializeNode(source);
    
    推荐文章