<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<?
  
// nejdřív definice třídy
  
class bilance
  
{
    var 
$soubor;
    var 
$bilance=0;
    var 
$priv_jeprijem=false;
    var 
$priv_znacka="";
    var 
$priv_parser;
    
    function 
PocatecniZnacka ($parser$nazev$atributy)
    {
      
$this->priv_znacka=$nazev;
      if (
$this->priv_znacka=="PRIJEM"$this->priv_jeprijem=true
      if (
$this->priv_znacka=="VYDAJ"$this->priv_jeprijem=false;
    }
  
    function 
KoncovaZnacka ($parser$nazev) {}
    
    function 
data ($parser$data)
    {
      if (
$this->priv_znacka=="CASTKA" and $this->priv_jeprijem$this->bilance+=$data;
      if (
$this->priv_znacka=="CASTKA" and !$this->priv_jeprijem$this->bilance-=$data;
    }
    
    function 
parse ()
    {
      
$this->priv_parser=xml_parser_create();
      
xml_set_object($this->priv_parser$this);
      
xml_set_element_handler ($this->priv_parser"PocatecniZnacka""KoncovaZnacka");
      
xml_set_character_data_handler($this->priv_parser"data");
      if (!(
$obsahsouboru fopen($this->soubor"r"))) die("Nemohu otevřít XML pro čtení.");    
      while (
$data fread($obsahsouboru1024)) xml_parse($this->priv_parser$datafeof($obsahsouboru));
      
xml_parser_free($this->priv_parser);
    }
  }
  
  
// teď vlastní program
  
$moje_bilance = new bilance;
  
$moje_bilance->soubor "./finance.xml";
  
$moje_bilance->parse();
  echo 
$moje_bilance->bilance;
?>