xml_set_object
使 XML 解析器用类。
语法: void xml_set_object(int parser, object &object);
返回值: 无
函数种类: 资料处理
内容说明
本函数让解析器能使用类的方式,值得注意的是这个函数在 PHP 4.0 以上的版本才可使用。参数 parser 为 xml_parser_create() 所返回的解析代码。参数 &object 是类本身的指针。
使用范例
<?php
class xml&">nbsp; {
var $parser;
function xml() {
$this->parser = xml_parser_create();
xml_set_object($this->parser,&$this);
xml_set_element_handler($this->parser,"tag_open","tag_close");
xml_set_character_data_handler($this->parser,"cdata");
}
function parse($data) {
xml_parse($this->parser,$data);
}
function tag_open($parser,$tag,$attributes) {
var_dump($parser,$tag,$attributes);
}
function cdata($parser,$cdata) {
var_dump($parser,$cdata);
}
function tag_close($parser,$tag) {
var_dump($parser,$tag);
}
} // end of class xml
$xml_parser = new xml();
$xml_parser->parse("<A ID=\"hallo\">PHP</A>");
?>
欲使用本函数库需先安装 zlib,可到 http://www.cdrom.com/pub/infozip/zlib/ 取得该函数库要使用本函数库,需先到 http://www.jclark.com/xml 取回 XML 的函数库,并且编译或安装。用 RedHat Linux 的用户可以到 http://www.guardian.no/~ssb/phpxml.html 取得 RPM 的格式档。之后要在编译 PHP 前加入 --with-xml 的配置选项。tommy@nashville.net 指出 (12-Jan-1999) 若有问题,尚需在 /usr/local/include 放入 xmltok.h 及 xmlparse.h 二个 C 语言的标头档,或是设好环境变量。
目前的版本支持三种字符集:US-ASCII、ISO-8859-1 与 UTF-8。至于 UTF-16 字符集 PHP 尚未支持。
XML 有许多错误代码,如下
XML_ERROR_NONE
XML_ERROR_NO_MEMORY
XML_ERROR_SYNTAX
XML_ERROR_NO_ELEMENTS
XML_ERROR_INVALID_TOKEN
XML_ERROR_UNCLOSED_TOKEN
XML_ERROR_PARTIAL_CHAR
XML_ERROR_TAG_MISMATCH
XML_ERROR_DUPLICATE_ATTRIBUTE
XML_ERROR_JUNK_AFTER_DOC_ELEMENT
XML_ERROR_PARAM_ENTITY_REF
XML_ERROR_UNDEFINED_ENTITY
XML_ERROR_RECURSIVE_ENTITY_REF
XML_ERROR_ASYNC_ENTITY
XML_ERROR_BAD_CHAR_REF
XML_ERROR_BINARY_ENTITY_REF
XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF
XML_ERROR_MISPLACED_XML_PI
XML_ERROR_UNKNOWN_ENCODING
XML_ERROR_INCORRECT_ENCODING
XML_ERROR_UNCLOSED_CDATA_SECTION
XML_ERROR_EXTERNAL_ENTITY_HANDLING