php xml处理(利用 xml_parser_create解析、读取、生成)

作者:袖梨 2022-06-24

php教程 xml处理(利用 xml_parser_create解析、读取、生成)
php处理xml文档有一个xml_parser_create()函数,关于这个函数我们来看一下
xml_parser_create() 函数创建 XML 解析器。

该函数建立一个新的 XML 解析器并返回可被其它 XML 函数使用的资源句柄。

语法
xml_parser_create(encoding)参数 描述
encoding 可选。规定输出编码

 

     function cdata_handler ($parser, $data) {
        print ($data);
     }
    
     $xml = "some character data";
     $parser = xml_parser_create ();
     xml_set_character_data_handler ($parser, 'cdata_handler');
    
     if (xml_parse ($parser, $xml, true))
          print ("Your XML document is well-formed.");
     else
          print ("Your XML document is not well-formed.");
    
     xml_parser_free ($parser);
?>

实例二

php
     $i = 1;
     function default_handler ($p, $data)
     {
          global $i;
          print ("$i: default: $datan");
          $i++;
     }
    
     function cdata_handler ($p, $data)
     {
          global $i;
          print ("$i: cdata: $datan");
          $i++;
     }
     $xml = "bar";
    
     $p = xml_parser_create ();
     xml_set_default_handler ($p, 'default_handler');
     xml_set_character_data_handler ($p, 'cdata_handler');
    
     if (!xml_parse ($p, $xml, true)){
          die (sprintf ("
Parse error in %s (%s)",
                        htmlspecialchars ($xml),
                        xml_error_string (xml_get_error_code ($p))));
     }
     xml_parser_free ($p);
?>

     function pi_handler ($p, $target, $data) {
        print ($target);
        print ($data);
     }

     $xml = "";
     $p = xml_parser_create ();
     xml_set_processing_instruction_handler ($p, 'pi_handler');
     if (!xml_parse ($p, $xml, true))
          die (sprintf ("Parse error in %s (%s)",
                        htmlspecialchars ($xml),
                        xml_error_string (xml_get_error_code ($p))));
     else
          print ("XML processing complete.n");
     xml_parser_free ($p);
?>

说明
可选参数 encoding 在 PHP 4 中用来指定要被解析的 XML 输入的字符编码方式。

PHP 5 开始,自动侦测输入的 XML 的编码,因此 encoding 参数仅用来指定解析后输出数据的编码。

在 PHP 4 中,默认输出的编码与输入数据的编码是相同的。如果传递了空字符串,解析器会尝试搜索头 3 或 4 个字节以确定文档的编码。

在 PHP 5.0.0 和 5.0.1 中,默认输出的字符编码是 ISO-8859-1,而 PHP 5.0.2 及以上版本是 UTF-8。

解析器支持的编码有 ISO-8859-1, UTF-8 和 US-ASCII。

 

相关文章

精彩推荐