Ponizej kod z 3 funkcjami (otwieranie, przetwarzanie, zamykanie tagow pliku xml). Nie wiem jak przerobic kod aby do tablicy dawal tylko te wezly w ktorych np. typ_pub jest rowny 'CD'. Napewno musi by if ale gdzie jak to nie wiem?

  1. <?
  2. // FUNKCJA PRZETWARZAJACA OTWARCIE TAGU
  3.  
  4. function tag_start($parser, $attr, $params){
  5. global $act_tag, $int, $ksiazki, $czy_book;
  6. if($attr == 'BOOK' && $czy_book == 1){
  7.  die('Błąd: Niedozwolone zagnieżdżenie redaktorów! :]<br>');
  8. }elseif($attr == 'BOOK' && $czy_book == 0){
  9.  $ksiazki[$int] = new book($params['id']);
  10.  $ksiazki[$int] -> indeks = $params['INDEKS'];
  11.  $czy_book = 1; 
  12. }
  13.  
  14. if($czy_book == 1){
  15.  $act_tag = $attr;
  16. }
  17.  }
  18.  
  19. // FUNKCJA OBROBKI TEKSTU MIEDZY ZNACZNIKAMI
  20.  
  21. function tag_text($parser, $text){
  22. global $act_tag, $int, $ksiazki, $czy_book;
  23.  
  24. if($czy_book == 1){
  25.  switch($act_tag){
  26. case 'TYTUL': $ksiazki[$int] -> tytul .= $text; break;
  27. case 'AUTORZY': $ksiazki[$int] -> autorzy .= $text; break;
  28. case 'WYDAWCA': $ksiazki[$int] -> wydawca .= $text; break;
  29. case 'OPRAWA': $ksiazki[$int] -> oprawa .= $text; break;
  30. case 'WYDANIE': $ksiazki[$int] -> wydanie .= $text; break;
  31. case 'ROKWYD': $ksiazki[$int] -> rokwyd .= $text; break;
  32. case 'OBJETOSC': $ksiazki[$int] -> objetosc .= $text; break;
  33. case 'OPIS': $ksiazki[$int] -> opis .= $text; break;
  34. case 'TYP_PUB': $ksiazki[$int] -> typ_pub .= $text; break;
  35. case 'TEMATYKA': $ksiazki[$int] -> tematyka .= $text; break;
  36.  }
  37. }
  38.  }
  39.  
  40. // FUNKCJA OBSŁUGUJĄCA ZAMYKANIE TAGÓW
  41.  
  42.  function tag_end($parser, $attr){
  43. global $act_tag, $int, $czy_book;
  44. if($attr == 'BOOK' && $czy_book == 1){
  45.  $int++;
  46.  $czy_book = 0;
  47. }
  48.  }
  49. ?>