函数:xml_set_object()

2004年12月03日 07:21 查看3562次 作者:   【
文章分类:XML 解析函数库

xml_set_object

使 XML 解析器用类。

语法: void xml_set_object(int parser, object &object);

返回值:

函数种类: 资料处理

内容说明

本函数让解析器能使用类的方式,值得注意的是这个函数在 PHP 4.0 以上的版本才可使用。参数 parser 为 xml_parser_create() 所返回的解析代码。参数 &object 是类本身的指针。

使用范例

<?php
class xml  {
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 。

责任编辑:rongsijing

给文章打分...

平均分:1.1(18 次)

-5 -4 -3 -2 -1 0 1 2 3 4 5
0

顶一下

发表我的见解...

  • 您的大名: 留空为匿名
  • 您的主页:
  • 您的邮箱: