结构
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_ELEMENT
、G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE
和 G_MARKUP_ERROR_INVALID_CONTENT
错误旨在从这些回调中设置。如果从回调中设置错误,g_markup_parse_context_parse()
将向其调用者报告该错误。
结构成员
start_element
看到元素的起始标记时调用的回调。回调的
attribute_names
和attribute_values
参数以NULL
结尾。end_element
看到元素的结束标记时调用的回调。请注意,对于
<empty/>
等空标签,也会调用此回调。text
看到一些文本时调用的回调(文本始终在一个元素内)。请注意,一个元素的文本可能散布在对此函数的多次调用中。如果设置了
G_MARKUP_TREAT_CDATA_AS_TEXT
标志,则还将对标记为 CDATA 的部分的内容调用此函数。passthrough
为注释、处理指令和文档类型声明调用的回调;如果您要重写已解析的文档,请在相同位置重新写出直通文本。如果未设置
G_MARKUP_TREAT_CDATA_AS_TEXT
标志,则还将对标记为 CDATA 的部分调用此函数。error
发生错误时调用的回调。