gpt4 book ai didi

c - libxml2 编写器差异

转载 作者:行者123 更新时间:2023-12-02 02:18:52 25 4
gpt4 key购买 nike

我能找到的关于 libxml2 的大部分示例都是关于加载/解析 XML 文件的。但我只对写它们感兴趣;代码将永远不必解析任何文件。有一个例子 using different writers ,其中显示了如何使用 filememoryDOMtree 模型。

查看代码,在编写方面我没有发现它们之间有任何显着差异。如何决定使用哪个更好? (换句话说,在什么情况下一个比另一个好?)

最佳答案

您指定的 4 个函数之间的差异很小,主要在于内容的去向。正如 Alex 所提到的,如果内存是一个问题,使用 xmlNewTextWriterFilename 的优点是不需要将结果保存在内存中。

您提到的所有方法都属于 xmlWriter API,它是提供的 API 之一。另一个值得注意的是 tree API . xmlWriter 更像是调用 write() 打印到文件,而树更像是在内存中构建嵌套结构。

如果您的数据是以非线性方式构建的,基于树的版本可能会很好,返回并根据以后的信息添加/更改内容等。这将需要一些解决方法/使用流式 xmlWriter 接口(interface)进行缓存,因为一旦输出就无法更改。然而,内存中的树可以在序列化之前完全调整。

树 API 的缺点是它必须将整个事物保存在内存中;经验法则是解析树的内存需求大约是序列化 xml 文件大小的 4 倍。

我的决定通常取决于我是否希望创建大型文档。如果没有,我会使用 if the tree api,因为如果我需要的话,灵 active 就在那里。如果我知道效率是一个问题,或者我将处理大型项目,那么流式 xmlWriter 是最佳选择。

可在此处找到树 API 示例:http://xmlsoft.org/examples/index.html#Tree

关于c - libxml2 编写器差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9235112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com