php处理xml文档有一个xml_parser_create()函数,关于这个函数我们来看一下.
xml_parser_create() 函数创建 XML 解析器,该函数建立一个新的 XML 解析器并返回可被其它 XML 函数使用的资源句柄.
语法:xml_parser_create(encoding)
参数 描述
encoding 可选,规定输出编码
实例代码如下:
<?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); ?>
说明:可选参数 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.
文章链接:
随便收藏,请保留本文地址!