ELEKTRO
CHEMIE
PROGRAMOVÁNÍ
FOTKY
BLOG
E-SHOP

Elektro

  • Novinky
  • Aktuality
  • PHP
  • MySQL
  • JavaScript
  • .NET
  • Download
  • Odkazy
  • Anketa
  • Návštěvní kniha
  • Mapa webu
  • O webu
  • RSS

  • © by Hugo moravec.zd@gmail.com

    Zpracování XML souboru

    Zde bych chtěl popsat funkce, které jsou potřeba pro zobrazení dat, uložených v XML dokumentu.

    Nejdříve je nutné inicializovat XML parser, k tomu slouží funkce xml_parser_create(). Poté musíme pomocí funkcí xml_set_element_handler() a xml_set_character_data_handler() vytvořit funkce, které budeme používat pro manipulaci s názvem a obsahem elementů.

    Nyní máme připraveno vše potřebné, pro analýzu XML dokumentu. Tu provedeme pomocí funkce xml_parse().

    Nyní se pokusím popsat jednoduchý skript, který je zobrazen pod tímto odstavcem. Pomocí funkce startElement() načteme název do globální proměnné $tag. Funkce characterData() zobrazuje data obsažená v příslušném elementu. Pomocí podmínky se zbavíme elementů, které nemají žádný obsah. Funkce endElement() je v tomto skriptu nevyužitá. Nakonec zrušíme XML parser pomocí funkce xml_parser_free().

    <?php
    $file 
    'pokus.xml';

    function 
    startElement ($xml_parser$name$attrs)
    {
      global 
    $tag;
      
    $tag $name;
    }

    function 
    endElement ($xml_parser$name)
    {

    }

    function 
    characterData ($xml_parser$char)
    {
      global 
    $tag;
      if (
    Trim($char) != '')
      {
        print 
    $tag.'&nbsp;=&nbsp;'.Trim($char).'<br>';
      }
    }


    $xml_parser xml_parser_create('UTF-8');
    xml_set_element_handler($xml_parser"startElement""endElement");
    xml_set_character_data_handler($xml_parser'characterData');
    if (!(
    $fp fopen($file"r"))) {
        die(
    "could not open XML input");
    }

    while (
    $data fread($fp4096)) {
        if (!
    xml_parse($xml_parser$datafeof($fp))) {
            die(
    sprintf("XML error: %s at line %d",
                        
    xml_error_string(xml_get_error_code($xml_parser)),
                        
    xml_get_current_line_number($xml_parser)));
        }
    }
    xml_parser_free($xml_parser);

    ?>

    Na obrázku je znázorněn výstup skriptu. Jako XML soubor byl použit soubor z předchozí kapitoly.

    Výsledek skriptu