# xml_set_element_handler

(PHP 4, PHP 5, PHP 7)

xml_set_element_handler — 建立起始和终止元素处理器

### 说明

xml_set_element_handler ( resource `$parser` , callable `$start_element_handler` , callable `$end_element_handler` ) : bool

为 `parser` 参数指定的 XML 解析器建立元素处理器函数。参数 `start_element_handler` 和 `end_element_handler` 为表示函数名称的字符串，这些函数必须在为 `parser` 指定的解析器调用 xml_parse() 函数时已存在。

### 参数

`parser`

  XML 解析器的引用，用于建立起始和终止元素处理器。

`start_element_handler`

  由 `start_element_handler` 参数命名的函数名必须接受三个参数：

  start_element_handler ( resource `$parser` , string `$name` , array `$attribs` )
  `parser`
    第一个参数 parser 为指向要调用处理器的 XML 解析器的指针。
  `name`
    第二个参数 `name` 为该处理器为之被调用的元素名。如果大小写折叠（case-folding）对该解析器有效，元素名将用大写字母表示。
  `attribs`
    第三个参数 `attribs` 为一个包含有对应元素的属性的数组（如果该元素有属性）。数组元素的下标为属性名，元素的值即为属性的值。属性名将以和元素名同样的标准进行大小写折叠（case-folded），其值不进行大小写折叠。 属性的原始顺序将会被参数保留，用 each() 函数遍历 `attribs` 时，该数组下表的顺序和属性的顺序相同。

  > Note: 除了函数名，含有对象引用的数组和方法名也可以作为参数。

`end_element_handler`

  由 `end_element_handler` 参数命名的函数名必须接受两个参数：

  end_element_handler ( resource `$parser` , string `$name` )
  `parser`
    第一个参数 parser 为指向要调用处理器的 XML 解析器的指针。
  `name`
    第二个参数 `name` 为该处理器为之被调用的元素名。如果大小写折叠（case-folding）对该解析器有效，元素名将用大写字母表示。

  如果处理器函数名被设置为空字符串或者 `FALSE`，则该有问题的处理器将被屏蔽。

### 返回值

成功时返回 `TRUE`， 或者在失败时返回 `FALSE`。