在GTK应用程序中,我正在使用libxml2中的xmlParseFile()
。但是,该函数只能读取本地文件。我怎样才能使它使用GIO框架,以便它也可以读取远程文件?
最简单的方法可能是使用g_file_load_contents()
之类的东西将整个文件读入内存,然后调用xmlParseMemory()
来解析它。但是,我正在寻找一种“更好”的解决方案,它可以理想地传输数据(以避免将整个数据保存在内存中);可能通过将GInputStream
连接到libxml2?
代码示例欢迎。我猜这是一个常见的用例,所以在这里收集一份详尽的良好实现列表可能会有用。
答案 0 :(得分:1)
libxml2网站上有关于如何通过文件中的块解析XML数据块的说明(带代码示例):http://xmlsoft.org/library.html#Invoking1
如果您想使用GInputStream
,则可以使用g_input_stream_read()
以与libxml2文档中的示例程序相同的方式将块提供给xmlParseChunk()
。