2

在 GTK 应用程序中,我使用xmlParseFile()的是 libxml2。但是,该函数只能读取本地文件。我怎样才能让它使用 GIO 框架,以便它也可以读取远程文件?

最简单的方法可能是使用类似g_file_load_contents()的方法将整个文件读入内存,然后调用xmlParseMemory()解析它。但是,我正在寻找一种“更好”的解决方案,它可以理想地流式传输数据(以避免将整个数据保存在内存中);可能通过将 a 连接GInputStream到 libxml2?

欢迎使用代码示例。我猜这是一个常见的用例,因此在这里收集一份详尽的良好实现列表可能会很有用。

4

1 回答 1

2

libxml2 网站上有关于如何从文件中逐块解析 XML 数据的说明(带有代码示例):http: //xmlsoft.org/library.html#Invoking1

如果您想使用,GInputStream那么您可以使用与 libxml2 文档中的示例程序相同的方式g_input_stream_read()来提供块。xmlParseChunk()

于 2011-06-26T08:12:56.850 回答