PHP XML解析器函数

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"