xml_set_object
xml_set_object
(PHP 4, PHP 5, PHP 7)
xml_set_object - 在对象中使用XML解析器
描述
bool xml_set_object ( resource $parser , object &$object )
这个函数允许在对象内部使用解析器。 所有的回调函数都可以用xml_set_element_handler()等来设置,并假定它是对象的方法。
警告
除了在解析完成时调用xml_parser
_free()之外,从PHP 7.0.0开始,还必须显式取消引用parser
以避免内存泄漏。
参数
parser
对在对象中使用的XML解析器的引用。
object
使用XML解析器的对象。
返回值
成功时返回TRUE
或失败时返回FALSE
。
例子
示例#1 xml_set_object()示例
<?php
class XMLParser
{
private $parser;
function __construct()
{
$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 __destruct()
{
xml_parser_free($this->parser
unset($this->parser
}
function parse($data)
{
xml_parse($this->parser, $data
}
function tag_open($parser, $tag, $attributes)
{
var_dump($tag, $attributes
}
function cdata($parser, $cdata)
{
var_dump($cdata
}
function tag_close($parser, $tag)
{
var_dump($tag
}
}
$xml_parser = new XMLParser(
$xml_parser->parse("<A ID='hallo'>PHP</A>"
?>
上面的例子将输出:
string(1) "A"
array(1) {
["ID"]=>
string(5) "hallo"
}
string(3) "PHP"
string(1) "A"
← xml_set_notation_decl_handler
xml_set_processing_instruction_handler →