Probleme beim auslesen der XML-Datei

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Probleme beim auslesen der XML-Datei

    Probleme beim auslesen der XML-Datei


    Hallo Leute benötige mal euer Fachwissen.

    Ich habe eine XML-Datei die ich auslesen möchte

    - <menu>
    <menu name="Homes" folder="home" introtext="Text zu bild 1" />
    <menu name="Innengestaltung" folder="innengestaltung" introtext=" Text zu bild 2" />
    <menu name="Fassadengestaltung" folder="fassadengestaltung" introtext=" Text zu bild 3" />
    </menu>

    Die Daten name und folder bekomme ich wunderbar nur die vom introtext nicht.
    Habe nun schon zwei Tage darum brobiert und versucht über google nähere
    informationen zu bekommen es will aber einfach nicht funktionieren.

    Hier habe ich mal den Code bereit gestellt.

    PHP-Code:
    <?php
    class xmlParser{

       var 
    $xml_obj null;
       var 
    $output = array();

       function 
    xmlParser(){

           
    $this->xml_obj xml_parser_create();
           
    xml_set_object($this->xml_obj,$this);
           
    xml_set_character_data_handler($this->xml_obj'dataHandler');
           
    xml_set_element_handler($this->xml_obj"startHandler""endHandler");

       }

       function 
    parse($path){

           if (!(
    $fp fopen($path"r"))) {
               die(
    "Cannot open XML data file: $path");
               return 
    false;
           }

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

           return 
    true;
       }

       function 
    startHandler($parser$name$attribs){
           
    $_content = array('name' => $name);
           if(!empty(
    $attribs))
             
    $_content['attrs'] = $attribs;
           
    array_push($this->output$_content);
       }

       function 
    dataHandler($parser$data){
           if(!empty(
    $data)) {
               
    $_output_idx count($this->output) - 1;
               
    $this->output[$_output_idx]['content'] = $data;
           }
       }

       function 
    endHandler($parser$name){
           if(
    count($this->output) > 1) {
               
    $_data array_pop($this->output);
               
    $_output_idx count($this->output) - 1;
               
    $this->output[$_output_idx]['child'][] = $_data;
           }
       }
    }

    $list "gallery";

    $p =& new xmlParser();
    $p->parse('menu.xml');
    $galleries = isset($p->output[0]['child']) ? $p->output[0]['child'] : array();

    ?>
            <h1>Galleries</h1>
              <hr />
            <form name="form_new" action="gallerie.php" method="post">
                <input type="hidden" name="new_name" value="">
                <a href="javascript:new_gallery()">Neue Gallery anlegen</a>
            </form>
            <form name="form_save" action="sichern.php" method="post" onsubmit="return save_gal('gallery_list');">
                <input type="hidden" name="gal_names" value="">
                <input type="hidden" name="gal_folders" value="">
                <input type="hidden" name="gal_deletes" value="">
                <input type="hidden" name="gal_introtexts" value="">
                <ul id="gallery_list" class="sortable boxy">
                    <?php print_galleries($galleries); ?>
                </ul>
                <p><input type="submit" value="&Auml;nderungen sicher"/></p>
            </form>
            <script language="JavaScript"><!--
                <?php print_folders($galleries); ?>
            //-->
            </script>
    <?php

    // Hauptausgabe
    function print_galleries($gals){
        
    $gals_html "";
        
    $count 0;
        
    $template '<li id="gal_%NUM%">
                    <div class="handle"></div>
                    <div class="text" id="gal_info">
                        <input name="name_%NUM%" type="text" value="%NAME%" class="input_gal" />
                        <span class="delete"><input type="checkbox" name="delete_%NUM%">l&ouml;schen</span>
                        <span class="pic_edit"><input type="button" value="Bilder bearbeiten" onclick="location.href=\'bild.php?name=%NAME%&folder=%FOLDER%\';"/></span>
                        <input type="button" value="Bilder einf&uuml;gen" onclick="showUpload(\'%NAME%\',\'%FOLDER%\'); return false;"/>
                        <p><input name="introtext_%NUM%" type="text" value="%INTROTEXT%" class="input_gal2" /> Introtext</p>
                    </div>
                </li>'
    ;
                
        
    $gal_vars = array("%NUM%""%NAME%""%FOLDER%""%INTROTEXT%");
        
        foreach (
    $gals as $gal){
            
    $gal_values = array($count+1$gals[$count]['attrs']['NAME'], $gals[$count]['attrs']['FOLDER'], $gals[$count]['attrs']['INTROTEXT']);
            
    $gals_html .= str_replace($gal_vars$gal_values$template);        
            ++
    $count;
        }
        echo 
    $gals_html;
    }

    function 
    print_folders($gals){
        
    $count 1;
        foreach (
    $gals as $gal){
            echo(
    "var folder_$count = \"" $gals[$count-1]['attrs']['FOLDER'] . "\";\r\n");
              echo(
    "var introtext_$count = \"" $gals[$count-1]['attrs']['INTROTEXT'] . "\";\r\n");
            ++
    $count;
        }
    }

    ?>
    Meine Frage wo liegt mein Denk- bzw. Schreibfehler?

    Ich hoffe das mir jemand weiter helfen kann und bedanke mich schon mal im voraus für eure Mühe.
    Zuletzt geändert von eno24; 19.03.2007, 02:47.

  • #2
    Re: HILFE! Probleme beim auslesen der XML-Datei

    error_reporting auf E_ALL?
    Was haben deine Kontrollausgaben der Repräsentation eines solchen XML-Knotens mittels var_dump/print_r ergeben?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar

    Lädt...
    X