功能
GLibmarkup_collect_attributes
自:2.16 起有效
声明 [src]
gboolean
g_markup_collect_attributes (
const gchar* element_name,
const gchar** attribute_names,
const gchar** attribute_values,
GError** error,
GMarkupCollectType first_type,
const gchar* first_attr,
...
)
描述 [src]
从传递至 GMarkupParser start_element 功能的数据中收集元素的属性,处理常见的错误状况,并支持布尔值。
无需此实用功能即可编写解析器,但可以节省大量键入工作。
传递至 start_element 回调的 element_name、attribute_names、attribute_values 和 error 参数应不加修改直接传递给此功能。
在这些参数后,是待收集的“受支持”属性列表。指定具有相同名称的多个属性是错误的。如果列表属性中出现不在此属性列表中的任何属性,则会导致未知属性错误。
GMarkupCollectType 字段允许指定要执行的收集类型,以及给定属性是否必须出现或是否为可选。
属性名称仅仅是要收集的属性的名称。
指针应属于适当的类型(请参阅 GMarkupCollectType 下的说明),并且在允许出现特定属性但在不予考虑时可以为 NULL。
此功能会处理丢失属性(类型为 G_MARKUP_ERROR_MISSING_ATTRIBUTE)、未知属性(类型为 G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE)、重复属性(类型为 G_MARKUP_ERROR_INVALID_CONTENT)以及布尔值属性的解析错误(同样为类型 G_MARKUP_ERROR_INVALID_CONTENT)。在所有这些情况下,都会返回 FALSE,并将 error 设为适当的值。
自 2.16 起可用
此功能不直接对语言绑定可用。
参数
element_name-
类型:
const gchar*当前标记名称。
数据由函数调用方拥有。 该值是一个以 NUL 结尾的 UTF-8 字符串。 attribute_names-
类型:
const gchar**属性名称。
数据由函数调用方拥有。 该值是一个以 NUL 结尾的 UTF-8 字符串。 attribute_values-
类型:
const gchar**属性值。
数据由函数调用方拥有。 该值是一个以 NUL 结尾的 UTF-8 字符串。 error-
类型:
GError指向
GError或NULL的指针。数据由函数调用方拥有。 first_type-
第一个属性的
GMarkupCollectType。 first_attr-
类型:
const gchar*第一个属性的名称。
数据由函数调用方拥有。 该值是一个以 NUL 结尾的 UTF-8 字符串。 ...-
类型:
指向第一个属性(或
NULL)的存储位置的指针,后跟更多类型名称和指针,以G_MARKUP_COLLECT_INVALID结尾。