PHP xml_set_object() 函数允许在对象内部使用解析器。所有回调函数都可以使用 xml_set_element_handler() 等设置,并假定为对象的方法。
语法
xml_set_object(parser, object)
参数
parser | 必需。 指定对要在对象内部使用的 XML 解析器的引用。 |
object | 必需。 指定使用 XML 解析器的对象。 |
返回值
成功时返回 true,失败时返回 false .
示例:xml_set_object() 示例
下面的示例显示 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_start", "tag_end");
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("<p id='test'>Hello World!</p>");
?>
输出上述代码将是:
string(1) "P" array(1) { ["ID"]=> string(4) "test" } string(12) "Hello World!" string(1) "P"