<?php 
 
/** 
 * @author Dick Munroe <[email protected]> 
 * @copyright copyright @ 2006 by Dick Munroe, Cottage Software Works, Inc. 
 * @license http://www.csworks.com/publications/ModifiedNetBSD.html 
 * @version 1.0.0 
 * @package saxyRE 
 * @example ./example-backup.php 
 * @example ./example-restore.php 
 * 
 * Quick and dirty XPATH like processing using regular expressions. 
 * 
 * To see thing in action execute: 
 * 
 *     php example.php < example.xml > foo.html 
 * 
 * The GlobalValues nodes are stripped out. 
 * 
 * Edit History: 
 * 
 *  Dick Munroe ([email protected]) 19-Apr-2006 
 *      Initial Version Created. 
 */ 
include_once('class.saxyRE.php') ; 
 
class testSaxyRE 
{ 
    var $m_outputFile ; 
    var $m_parser ; 
 
    function testSaxyRE( 
        $theInputFile = 'php://stdin', 
        $theOutputFile = 'php://stdout') 
    { 
        $theFileContents = file_get_contents($theInputFile) ; 
        $this->m_outputFile = fopen($theOutputFile, 'w') ; 
 
        $this->m_parser = 
            new saxyRe() ; 
 
        /* 
         * Remove anything with GlobalValues in the path from parsing. 
         */ 
 
        $theRE = 
            new saxyREArgumentBlock( 
                '/GlobalValues/') ; 
 
        $this->m_parser->addRE($theRE) ; 
 
        $theRE = 
            new saxyREArgumentBlock( 
                '|^/|', 
                array(&$this, 'start'), 
                array(&$this, 'data'), 
                array(&$this, 'end')) ; 
 
        $this->m_parser->addRE($theRE) ; 
 
        $this->m_parser->parse($theFileContents) ; 
 
        fclose($this->m_outputFile) ; 
    } 
 
    function start($theParser, $theName, $theAttributes) 
    { 
        fwrite($this->m_outputFile, "<br /><b>Open tag:</b> " . $theName  . "<br /><b>Attributes:</b> " . print_r($theAttributes, true)  . "<br />"); 
    } 
 
    function data($theParser, $theText) 
    { 
        fwrite($this->m_outputFile, "<br /><b>Text node:</b> " . $theText  . "<br />"); 
    } 
 
    function end($theParser, $theName) 
    { 
        fwrite($this->m_outputFile, "<br /><b>Close tag:</b> " . $theName  . "<br />"); 
    } 
} 
 
$theParser = new testSaxyRE() ; 
?> 
 
 |