> php教程 > php手册 > 본문

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

WBOY
풀어 주다: 2016-05-25 16:41:52
원래의
1458명이 탐색했습니다.

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, &#39;cdata_handler&#39;);
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, &#39;default_handler&#39;);
xml_set_character_data_handler($p, &#39;cdata_handler&#39;);
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, &#39;pi_handler&#39;);
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.


文章链接:

随便收藏,请保留本文地址!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿