功能
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
结尾。