函数:xml_set_element_handler()

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

xml_set_element_handler

配置元素的标头。

语法: boolean xml_set_element_handler(int parser, string startElementHandler, string endElementHandler);

返回值: 布尔值

函数种类: 资料处理

内容说明

本函数配置元素的标头供 xml_parse() 函数使用。参数 parser 为解析代码。参数 startElementHandler 及 endElementHandler 分别为元素开始与结束的标头,其中的 startElementHandler 必须包括解析代码、名称、与属性,而 endElementHandler 参数包括了解析代码及名称二个参数。若无错误则返回 true 值。

使用范例

下列用来显示 XML 元素结构 (Element Structure)

<?php
$file 
"data.xml";
$depth = array();

function 
startElement($parser$name$attrs)
{
    global 
$depth;
    for (
$i 0$i $depth[$parser]; $i++) {
        print 
"  ";
    }
    print 
"$name\n";
    
$depth[$parser]++;
}

function 
endElement($parser$name$attrs)
{
    global 
$depth;
    
$depth[$parser]--;
}

$xml_parser xml_parser_create();
xml_set_element_handler($xml_parser"startElement""endElement");
if (!(
$fp fopen($file"r"))) {
    die(
"could not open XML input");
}
while (
$data fread($fp4096)) {
    if (!
xml_parse($xml_parser$datafeof($fp))) {
        die(
sprintf("XML error: %s at line %d",
                    
xml_error_string(xml_get_error_code($xml_parser)),
                    
xml_get_current_line_number($xml_parser)));
    }
}
xml_parser_free($xml_parser);
?>


欲使用本函数库需先安装 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.0(21 次)

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

顶一下

发表我的见解...

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