如何使用libxml2从GInputStream(GLibGIO/GVFS)中解析数据?

3
在一个GTK应用程序中,我正在使用libxml2中的xmlParseFile()函数。然而,该函数只能读取本地文件。如何使它使用GIO框架,以便它也可以读取远程文件?
最简单的方法可能是使用类似g_file_load_contents()的函数将整个文件读入内存,然后调用xmlParseMemory()来解析它。但是,我正在寻找一种更好的解决方案,最好是流式传输数据(以避免将整个数据保留在内存中);可能通过连接GInputStream到libxml2来实现?
欢迎提供代码示例。我想这是一个常见的用例,因此在此收集好的实现的详尽列表可能会很有用。
1个回答

3
在libxml2网站上有关于如何从文件中逐块解析XML数据的说明(包含代码示例):http://xmlsoft.org/library.html#Invoking1。如果您想使用GInputStream,则可以使用g_input_stream_read()将块提供给xmlParseChunk(),方法与libxml2文档中的示例程序相同。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接