在 GTK 应用程序中,我使用来自 libxml2 的 xmlParseFile()
。但是,该函数只能读取本地文件。我怎样才能让它使用 GIO 框架,以便它也可以读取远程文件?
最简单的方法可能是使用类似g_file_load_contents()
的方法将整个文件读入内存,然后调用xmlParseMemory()
对其进行解析。但是,我正在寻找一种理想地流式传输数据的“更好”的解决方案(以避免将整个数据保留在内存中);可能通过将 GInputStream
连接到 libxml2?
欢迎使用代码示例。我想这是一个常见的用例,因此在此处收集一份详尽的良好实现列表可能会有用。
最佳答案
在 libxml2 网站上有关于如何从文件中逐 block 解析 XML 数据的说明(带有代码示例):http://xmlsoft.org/library.html#Invoking1
如果您想使用 GInputStream
,那么您可以使用 g_input_stream_read()
以与libxml2 文档中的示例程序。
关于stream - 如何使用libxml2解析来自GInputStream(GLibGIO/GVFS)的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6473917/