SAX

byid/sax.php:
<?php

$SaxObject 
= new SaxClass();
$parser_object xml_parser_create();
xml_set_object ($parser_object$SaxObject);    
//don't do CASE_FOLDING
xml_parser_set_option($parser_objectXML_OPTION_CASE_FOLDINGfalse);

xml_set_element_handler($parser_object,"startElement","endElement");
xml_set_character_data_handler($parser_object"contentHandler");

class 
SaxClass {
    private 
$hit false;
    private 
$titleHit false;
    
//callback for start Elements
    
    
function startElement($parser_object$elementname$attribute) {
        if (
$elementname == "entry") {
            if ( 
$attribute['ID'] == 9999) {
                
$this->hit true;
                
                
            } else {
                
$this->hit false;
            }
        }
        if (
$this->hit && $elementname == "title") {
            
$this->titleHit true;
            
        } else {
            
$this->titleHit =false;          
        }
        
    }
    
//callback for end Element
    
function endElement($parser_object$elementname) {
        
    }
    
    function 
contentHandler($parser_object,$data)
    {
        if (
$this->titleHit) {
        }
         
    }
}

doParse($parser_object);

function 
doParse($parser_object) {
    
//open a filehandle to books.xml
    
global $argv;
    
    
$file = (isset($argv[2])) ? $argv[2] : $_GET['file'];
    if (!(
$fp fopen("../".$file.".txt""r")));
    
    
//loop through data
    
while ($daten fread($fp4096))
    {
        
//parse the fragment
        
xml_parse($parser_object$datenfeof($fp));
    }
}
 
xmlreader © copyright 2004  Bitflux GmbH