如何使用libxml2解析来自GInputStream(GLibGIO/GVFS)的数据?
在GTK应用程序中,我使用libxml2中的如何使用libxml2解析来自GInputStream(GLibGIO/GVFS)的数据?,stream,gtk,libxml2,glib,gio,Stream,Gtk,Libxml2,Glib,Gio,在GTK应用程序中,我使用libxml2中的xmlParseFile()。但是,该函数只能读取本地文件。我如何让它使用GIO框架,以便它也可以读取远程文件 最简单的方法可能是使用g\u file\u load\u contents()将整个文件读入内存,然后调用xmlParseMemory()对其进行解析。然而,我正在寻找一个“更好”的解决方案,理想情况下,它可以流式传输数据(以避免将整个数据保存在内存中);可能通过将GInputStream连接到libxml2 欢迎使用代码示例。我想这是一个常
xmlParseFile()
。但是,该函数只能读取本地文件。我如何让它使用GIO框架,以便它也可以读取远程文件
最简单的方法可能是使用g\u file\u load\u contents()
将整个文件读入内存,然后调用xmlParseMemory()
对其进行解析。然而,我正在寻找一个“更好”的解决方案,理想情况下,它可以流式传输数据(以避免将整个数据保存在内存中);可能通过将GInputStream
连接到libxml2
欢迎使用代码示例。我想这是一个常见的用例,因此在这里收集一个详尽的良好实现列表可能会很有用。libxml2网站上有关于如何从文件中逐块解析XML数据的说明(带有代码示例):
如果您想使用GInputStream
,那么可以使用g\u input\u stream\u read()
以与libxml2文档中的示例程序相同的方式向xmlpassechunk()
提供块关于如何从文件逐块解析XML数据,请访问libxml2网站:
如果您想使用GInputStream
,那么可以使用g\u input\u stream\u read()
以与libxml2文档中的示例程序相同的方式将块馈送到xmlpassechunk()