首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

xml_set_object

(PHP 4, PHP 5, PHP 7)

xml_set_object - 在对象中使用XML解析器

描述

代码语言:javascript
复制
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()示例

代码语言:javascript
复制
<?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>");
?>

上面的例子将输出:

代码语言:javascript
复制
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 →

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com