php中xml解析函数xml_parser_create

作者:袖梨 2022-06-24

xml 解析器。

语法: int xml_parser_create(string [encoding]);

返回值: 整数

函数种类: 资料处理
 
 
内容说明


本函数用来初始化一个新的 xml 解析器。参数 encoding 可省略,为 xml 使用的字符集,默认值为 iso-8859-1,其它尚有 us-ascii、utf-8 二种。成功则返回 parser 代码供其它函数使用,失败则返回 false 值。


*/
$xmlfile='test.xml';       //定义一个xml文件
$xmlparser=xml_parser_create();    //建立一个xml解析器
$fp=fopen($xmlfile,'r');      //打开一个文件并读取数据
while($xmldata=fread($fp,4096))    //循环读取文件内容

  if(!xml_parse($xmlparser,$xmldata,feof($fp)))  //解析xml数据,如果失败输出错误信息
  {
    die(print "error:".
    xml_error_string(xml_get_error_code($xmlparser))."
"."line:".
    xml_get_current_line_number($xmlparser)."
"."column:".
    xml_get_current_column_number($xmlparser)."
");
  }
}
xml_parser_free($xmlparser);     //释放xml解析器

/*
php 5 开始,自动侦测输入的 xml 的编码,因此 encoding 参数仅用来指定解析后输出数据的编码
在 php 5.0.0 和 5.0.1 总,默认输出的字符编码是 iso-8859-1,而 php 5.0.2 及以上版本是 utf-8。解析器支持的编码有 iso-8859-1, utf-8 和 us-ascii


bool xml_parser_free ( resource parser )

 


parser
指向要释放的 xml 解析器的指针。


如果 parser 参数没有指向一个合法的解析器,该函数将返回 false,否则将释放指定的解析器并返回 true

*/

$simple="simple note";    //定义xml数据
$p=xml_parser_create();         //创建xml解析器
xml_parse_into_struct($p,$simple,$vals,$index);    //将数据解析到数组
xml_parser_free($p);          //释放xml解析器
echo "index arrayn";
print_r($index);           //输出结果数组
echo "nvals arrayn";
print_r($vals);
/*输出结果为:
index array
array
(
   [para] => array
       (
           [0] => 0
           [1] => 2
       )
   [note] => array
       (
           [0] => 1
       )
)
vals array
array
(
   [0] => array
       (
           [tag] => para
           [type] => open
           [level] => 1
       )
   [1] => array
       (
           [tag] => note
           [type] => complete
           [level] => 2
           [value] => simple note
       )
   [2] => array
       (
           [tag] => para
           [type] => close
           [level] => 1
       )
)
*/

相关文章

精彩推荐