wns9778.com_威尼斯wns.9778官网

热门关键词: wns9778.com,威尼斯wns.9778官网
wns9778.com > 计算机教程 > php中xml解析函数xml_parser_createwns9778.com

原标题:php中xml解析函数xml_parser_createwns9778.com

浏览次数:121 时间:2019-09-29

xml 解析器。

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

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

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

返回值: 整数

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

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

 

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

<?php
     function cdata_handler ($parser, $data) {
        print ($data);
     }
    
     $xml = "<para>some character data</para>";
     $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 = "<foo>bar</foo><?exec command ?>";
    
     $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 ("<br />Parse error in <code>%s</code> (%s)",
                        htmlspecialchars ($xml),
                        xml_error_string (xml_get_error_code ($p))));
     }
     xml_parser_free ($p);
?>

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

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

*/
$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))."<br/>"."line:".
    xml_get_current_line_number($xmlparser)."<br/>"."column:".
    xml_get_current_column_number($xmlparser)."<br/>");
  }
}
xml_parser_free($xmlparser);     //释放xml解析器

说明
可选参数 encoding 在 PHP 4 中用来指定要被解析的 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

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

本文由wns9778.com发布于计算机教程,转载请注明出处:php中xml解析函数xml_parser_createwns9778.com

关键词: wns9778.com

上一篇:PHP RSS 生成类

下一篇:没有了