【问题标题】:how to use libxml2 to parse data from GInputStream (GLibGIO/GVFS)?如何使用 libxml2 解析来自 GInputStream (GLibGIO/GVFS) 的数据?
【发布时间】:2011-09-22 08:49:45
【问题描述】:

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

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

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

【问题讨论】:

    标签: stream gtk libxml2 glib gio


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2011-07-24
      • 1970-01-01
      • 2018-08-15
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      • 2011-08-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多