xml_parse_into_struct()

解析 XML 数据,并将其存储在一个数组中,该数组包含了 XML 数据的结构信息

首字母:X

函数名称:xml_parse_into_struct()

函数描述:xml_parse_into_struct() 函数解析 XML 数据,并将其存储在一个数组中,该数组包含了 XML 数据的结构信息。

适用版本:所有 PHP 版本(无需安装额外扩展)

语法:int xml_parse_into_struct ( resource $parser , string $data , array &$values [, array &$index ] )

参数:

  • parser:XML 解析器资源,通过 xml_parser_create() 函数创建。
  • data:待解析的 XML 数据。
  • values:存储解析结果的数组。
  • index(可选):存储元素索引的数组。

返回值:返回解析的元素数量,如果解析失败则返回 0。

示例:


 
 Everyday Italian
 Giada De Laurentiis
 2005
 30.00
 
 
 Harry Potter
 J.K. Rowling
 2005
 29.99
 

';
// 设置解析器的处理函数
xml_set_element_handler($parser, "startElement", "endElement");
// 设置解析器的字符数据处理函数
xml_set_character_data_handler($parser, "characterData");
// 解析 XML 数据
xml_parse_into_struct($parser, $xmlData, $values, $index);
// 打印解析结果
print_r($values);
// 释放 XML 解析器资源
xml_parser_free($parser);
// 解析开始标签时的处理函数
function startElement($parser, $name, $attrs) {
 echo "Start tag: $name\n";
}
// 解析结束标签时的处理函数
function endElement($parser, $name) {
 echo "End tag: $name\n";
}
// 解析字符数据时的处理函数
function characterData($parser, $data) {
 echo "Character data: $data\n";
}
?>

输出结果:

Array
(
 [0] => Array
 (
 [tag] => BOOKSTORE
 [type] => open
 [level] => 1
 [attributes] => Array
 (
 )
 )
 [1] => Array
 (
 [tag] => BOOK
 [type] => open
 [level] => 2
 [attributes] => Array
 (
 [CATEGORY] => cooking
 )
 )
 [2] => Array
 (
 [tag] => TITLE
 [type] => open
 [level] => 3
 [attributes] => Array
 (
 [LANG] => en
 )
 )
 ...
)

以上示例演示了如何使用 xml_parse_into_struct() 函数解析 XML 数据,并将解析结果存储在一个数组中。在示例中,首先创建了一个 XML 解析器,然后定义了解析器的处理函数,包括开始标签、结束标签和字符数据的处理函数。接着,使用 xml_parse_into_struct() 函数解析了一个包含书籍信息的 XML 数据,并将解析结果存储在 $values 数组中。最后,打印了解析结果。

同首字母函数