<?php
require_once('XML/Parser.php');

class 
Wishlist_Item {
    public 
$id;
    public 
$title;
    public 
$author;
    public 
$desc;
}

class 
Wishlist extends XML_Parser {
    private 
$curtag;
    private 
$curitem;

    public 
$items;
    public 
$base;

    function 
__construct($filename) {
        
$this->items = array();
    
        
$this->XML_Parser();
        
$this->setMode('event');
        
$this->setInputFile($filename);
    }

    function 
startHandler($x
                          
$tag
                          
$attr) {
        switch (
$tag) {
        case 
'WISHLIST':
            
$this->base $attr['URI'];
            break;
        case 
'ITEM':
            
$item = new Wishlist_Item();
            
$item->id $attr['ID'];
            
array_push($this->items
                       
$item);

            
$this->curitem $item;
            break;
        default:
            
$this->curtag $tag;
            break;
        }
    }

    function 
endHandler($x$tag) {
        
$this->curtag null;
    }

    function 
cdataHandler($x$data) {
        
$data trim($data);

        
$item $this->curitem;

        switch (
$this->curtag) {
        case 
'TITLE':
            
$item->title .= $data;
            break;
        case 
'AUTHOR':
            
$item->author .= $data;
            break;
        case 
'DESCRIPTION':
            
$item->desc .= $data;
            break;
        }
    }
}
?>