xml_set_object

オブジェクト内部で XML パーサを使用する

説明

true xml_set_object(XMLParser $parser, object $object)

この関数は、object の内部から parser を使用可能にします。 xml_set_element_handler 等により設定される 全てのコールバック関数は、object のメソッドであると仮定されます。

パラメータ

parser

オブジェクト内部で使う XML パーサへの参照。

object

XML パーサを使うオブジェクト。

戻り値

常に true を返します。

変更履歴

バージョン 説明
8.0.0 引数 parser は、 XMLParser インスタンスを期待するようになりました。 これより前のバージョンでは、有効な xml resource が期待されていました。

例1 xml_set_object の例

<?php
class CustomXMLParser
{
    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 
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 CustomXMLParser();
$xml_parser->parse("<A ID='hallo'>PHP</A>");
?>

上の例の出力は以下となります。

string(1) "A"
array(1) {
  ["ID"]=>
  string(5) "hallo"
}
string(3) "PHP"
string(1) "A"