功能

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_nameattribute_namesattribute_valueserror 参数应不加修改直接传递给此功能。

在这些参数后,是待收集的“受支持”属性列表。指定具有相同名称的多个属性是错误的。如果列表属性中出现不在此属性列表中的任何属性,则会导致未知属性错误。

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

指向 GErrorNULL 的指针。

数据由函数调用方拥有。
first_type

类型: GMarkupCollectType

第一个属性的 GMarkupCollectType

first_attr

类型: const gchar*

第一个属性的名称。

数据由函数调用方拥有。
该值是一个以 NUL 结尾的 UTF-8 字符串。
...

类型: 

指向第一个属性(或 NULL)的存储位置的指针,后跟更多类型名称和指针,以 G_MARKUP_COLLECT_INVALID 结尾。

返回值

类型: gboolean

如果成功则为 TRUE