XML Parser xml_set_object

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_object — 개체 내에서 XML 파서 사용


설명

xml_set_object(XMLParser $parser, object $object): bool

이 함수를 사용하면 object 내부에서 parser를 사용할 수 있습니다. 모든 콜백 함수는 xml_set_element_handler() 등으로 설정할 수 있으며 object의 메소드로 가정합니다.


매개변수

parser
개체 내부에서 사용할 XML 파서에 대한 참조입니다.
object
XML 파서를 사용할 개체입니다.

반환 값

성공하면 true를, 실패하면 false를 반환합니다.


변경 로그

버전 설명
8.0.0 parser는 이제 XMLParser 인스턴스를 예상합니다. 이전에는 리소스가 필요했습니다.

Examples

예제 #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"