void xml_set_object(int parser, object &object);この関数は、objectの内部から parser を使用可能にします。 xml_set_element_handler() 等により設定される 全てのコールバック関数は、object のメソッドであると仮定されます。
1
2 <?php
3 class xml {
4 var $parser;
5
6 function xml() {
7 $this->parser = xml_parser_create();
8 xml_set_object($this->parser,&$this);
9 xml_set_element_handler($this->parser,"tag_open","tag_close");
10 xml_set_character_data_handler($this->parser,"cdata");
11 }
12
13 function parse($data) {
14 xml_parse($this->parser,$data);
15 }
16
17 function tag_open($parser,$tag,$attributes) {
18 var_dump($parser,$tag,$attributes);
19 }
20
21 function cdata($parser,$cdata) {
22 var_dump($parser,$cdata);
23 }
24
25 function tag_close($parser,$tag) {
26 var_dump($parser,$tag);
27 }
28
29 } // クラス xmlの終わり
30
31 $xml_parser = new xml();
32 $xml_parser->parse("<A ID=\"hallo\">PHP</A>");
33 ?>
34 |
注意: xml_set_object() 処理は、PHP 4.0 で追加されました。