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_object, XML_OPTION_CASE_FOLDING, false);
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($fp, 4096))
{
//parse the fragment
xml_parse($parser_object, $daten, feof($fp));
}
}
xmlreader
© copyright 2004 Bitflux GmbH