当前位置:首页 > PHP教程 > php应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2014-08-20 14:54:35 浏览: 评论:0 

php处理xml文档有一个xml_parser_create()函数,关于这个函数我们来看一下.

xml_parser_create() 函数创建 XML 解析器,该函数建立一个新的 XML 解析器并返回可被其它 XML 函数使用的资源句柄.

语法:xml_parser_create(encoding)

参数 描述 

encoding 可选,规定输出编码

实例代码如下:

  1. <?php 
  2.      function cdata_handler ($parser$data) {  
  3.         print ($data);  
  4.      } 
  5.       
  6.      $xml = "<para>some character data</para>"
  7.      $parser = xml_parser_create (); 
  8.      xml_set_character_data_handler ($parser'cdata_handler'); 
  9.       
  10.      if (xml_parse ($parser$xml, true)) 
  11.           print ("Your XML document is well-formed."); 
  12.      else 
  13.           print ("Your XML document is not well-formed."); 
  14.      //开源代码phpfensi.com 
  15.      xml_parser_free ($parser); 
  16. ?> 

实例二,代码如下:

  1. <?php 
  2.      $i = 1; 
  3.      function default_handler ($p$data
  4.      { 
  5.           global $i
  6.           print ("$i: default: $datan"); 
  7.           $i++; 
  8.      } 
  9.       
  10.      function cdata_handler ($p$data
  11.      { 
  12.           global $i
  13.           print ("$i: cdata: $datan"); 
  14.           $i++; 
  15.      } 
  16.      $xml = "<foo>bar</foo><?exec command ?>"
  17.       
  18.      $p = xml_parser_create (); 
  19.      xml_set_default_handler ($p'default_handler'); 
  20.      xml_set_character_data_handler ($p'cdata_handler'); 
  21.       
  22.      if (!xml_parse ($p$xml, true)){ 
  23.           die (sprintf ("<br />Parse error in <code>%s</code> (%s)"
  24.                         htmlspecialchars ($xml), 
  25.                         xml_error_string (xml_get_error_code ($p)))); 
  26.      } 
  27.      xml_parser_free ($p); 
  28. ?> 

实例三代码如下:

  1. <?php 
  2.      function pi_handler ($p$target$data) { 
  3.         print ($target); 
  4.         print ($data); 
  5.      } 
  6.  
  7.      $xml = "<?exec ls -l /var?><rootElement/>"
  8.      $p = xml_parser_create (); 
  9.      xml_set_processing_instruction_handler ($p'pi_handler'); 
  10.      if (!xml_parse ($p$xml, true)) 
  11.           die (sprintf ("Parse error in <code>%s</code> (%s)"
  12.                         htmlspecialchars ($xml), 
  13.                         xml_error_string (xml_get_error_code ($p)))); 
  14.      else 
  15.           print ("XML processing complete.n"); 
  16.      xml_parser_free ($p); 
  17. ?> 

说明:可选参数 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.

Tags: php xml处理 xml_parser_create解析

分享到: