Пример #1
0
/*
Currently (Feb 10, 2005) CVS HEAD fails with the following message:
Fatal error: Invalid opcode 137/1/8. in /home/hartmut/projects/php/dev/head/ext/xml/tests/bug30266.php on line 22
*/
class XML_Parser
{
    public $dummy = "a";
    function parse($data)
    {
        $parser = xml_parser_create();
        xml_set_object($parser, $this);
        xml_set_element_handler($parser, 'startHandler', 'endHandler');
        xml_parse($parser, $data, true);
        xml_parser_free($parser);
    }
    function startHandler($XmlParser, $tag, $attr)
    {
        $this->dummy = "b";
        throw new Exception("ex");
    }
    function endHandler($XmlParser, $tag)
    {
    }
}
$p1 = new Xml_Parser();
try {
    $p1->parse('<tag1><tag2></tag2></tag1>');
} catch (Exception $e) {
    echo "OK\n";
}
        echo "notation_decl_handler called\n";
        echo "...Name=" . $name . "\n";
        echo "...Base=" . $base . "\n";
        echo "...System ID=" . $system_ID . "\n";
        echo "...Public ID=" . $public_ID . "\n";
    }
    function parse($data)
    {
        $parser = xml_parser_create();
        xml_set_object($parser, $this);
        xml_set_notation_decl_handler($parser, "notation_decl_handler");
        xml_set_unparsed_entity_decl_handler($parser, "unparsed_entity_decl_handler");
        xml_parse($parser, $data, true);
        xml_parser_free($parser);
    }
}
$xml = <<<HERE
<?xml version="1.0"?>
<!DOCTYPE dates [
    <!NOTATION USDATE SYSTEM "http://www.schema.net/usdate.not">
    <!NOTATION AUSDATE SYSTEM "http://www.schema.net/ausdate.not">
    <!NOTATION ISODATE SYSTEM "http://www.schema.net/isodate.not">
    <!ENTITY testUS  SYSTEM "test_usdate.xml" NDATA USDATE>
\t<!ENTITY testAUS SYSTEM "test_ausdate.xml" NDATA AUSDATE>
\t<!ENTITY testISO SYSTEM "test_isodate_xml" NDATA ISODATE>]>
]>
HERE;
echo "Simple test of xml_set_notation_decl_handler(() function\n";
$p1 = new Xml_Parser();
$p1->parse($xml);
echo "Done\n";
Пример #3
0
 /**
  * Присвоение ноде содержимого или значения.
  *
  * @param string $data - значение ноды или содержимое
  * @param integer $flag - флаг обработки данных (1 - обработка тегов для xml, 0 - удаление html тегов)
  */
 public function Set_Data($data, $flag = 1)
 {
     if (0 < $flag) {
         $this->_Data = Xml_Parser::String_Xml($data);
     } else {
         $this->_Data = Xml_Parser::String_Xml_NotHtml($data);
     }
 }
Пример #4
0
<?php

/**
 * The entry point to the application.
 * Initialize and run.
 */
// Including the class App
require 'config.php';
Zero_Logs::Init('app.log');
Zero_DB::Init();
$xml = new Xml_Parser();
$xml->Parser(PATH_EXCHANGE . '/test.xml', 'Xml_Handler_Test');
die('Done');