结构

GLibMarkupParser

描述 [src]

struct GMarkupParser {
  void (* start_element) (
    GMarkupParseContext* context,
    const gchar* element_name,
    const gchar** attribute_names,
    const gchar** attribute_values,
    gpointer user_data,
    GError** error
  );
  void (* end_element) (
    GMarkupParseContext* context,
    const gchar* element_name,
    gpointer user_data,
    GError** error
  );
  void (* text) (
    GMarkupParseContext* context,
    const gchar* text,
    gsize text_len,
    gpointer user_data,
    GError** error
  );
  void (* passthrough) (
    GMarkupParseContext* context,
    const gchar* passthrough_text,
    gsize text_len,
    gpointer user_data,
    GError** error
  );
  void (* error) (
    GMarkupParseContext* context,
    GError* error,
    gpointer user_data
  );
}

GMarkupParser 中的任何字段都可以是 NULL,如果是这样,它们将被忽略。除了 error 函数之外,任何这些回调都可以设置错误;尤其是 G_MARKUP_ERROR_UNKNOWN_ELEMENTG_MARKUP_ERROR_UNKNOWN_ATTRIBUTEG_MARKUP_ERROR_INVALID_CONTENT 错误旨在从这些回调中设置。如果从回调中设置错误,g_markup_parse_context_parse() 将向其调用者报告该错误。

结构成员
start_element

看到元素的起始标记时调用的回调。回调的 attribute_namesattribute_values 参数以 NULL 结尾。

end_element

看到元素的结束标记时调用的回调。请注意,对于 <empty/> 等空标签,也会调用此回调。

text

看到一些文本时调用的回调(文本始终在一个元素内)。请注意,一个元素的文本可能散布在对此函数的多次调用中。如果设置了 G_MARKUP_TREAT_CDATA_AS_TEXT 标志,则还将对标记为 CDATA 的部分的内容调用此函数。

passthrough

为注释、处理指令和文档类型声明调用的回调;如果您要重写已解析的文档,请在相同位置重新写出直通文本。如果未设置 G_MARKUP_TREAT_CDATA_AS_TEXT 标志,则还将对标记为 CDATA 的部分调用此函数。

error

发生错误时调用的回调。