English | 简体中文 | 繁體中文
查询

xml_set_element_handler()函数—用法及示例

「 设置 XML 解析器遇到元素开始和结束时的处理函数 」


函数名:xml_set_element_handler()

适用版本:PHP 4, PHP 5, PHP 7

用法:xml_set_element_handler() 函数用于设置 XML 解析器遇到元素开始和结束时的处理函数。

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

参数:

  • parser:XML 解析器资源。
  • start_element_handler:元素开始时的处理函数。该函数必须接受 3 个参数:解析器资源、元素名称和元素属性数组。
  • end_element_handler:元素结束时的处理函数。该函数必须接受 2 个参数:解析器资源和元素名称。

返回值:如果成功设置处理函数则返回 true,否则返回 false。

示例:

// 创建 XML 解析器
$parser = xml_parser_create();

// 设置元素开始和结束时的处理函数
xml_set_element_handler($parser, "startElement", "endElement");

// 定义元素开始时的处理函数
function startElement($parser, $element_name, $element_attrs) {
    echo "Start element: " . $element_name . "\n";
    foreach ($element_attrs as $attr_name => $attr_value) {
        echo "Attribute: " . $attr_name . " = " . $attr_value . "\n";
    }
}

// 定义元素结束时的处理函数
function endElement($parser, $element_name) {
    echo "End element: " . $element_name . "\n";
}

// 解析 XML 数据
$xml_data = "<root><item id='1'>Item 1</item><item id='2'>Item 2</item></root>";
xml_parse($parser, $xml_data);

// 释放 XML 解析器资源
xml_parser_free($parser);

输出结果:

Start element: root
Start element: item
Attribute: id = 1
End element: item
Start element: item
Attribute: id = 2
End element: item
End element: root

以上示例中,首先创建了一个 XML 解析器,然后使用 xml_set_element_handler() 函数设置了元素开始和结束时的处理函数。接着定义了两个处理函数 startElement() 和 endElement(),分别用于处理元素开始和结束的事件。最后通过 xml_parse() 函数解析了一个 XML 数据,并输出了处理结果。最后需要使用 xml_parser_free() 函数释放 XML 解析器资源。

补充纠错
热门PHP函数
分享链接