XML Parser Probleme

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

  • XML Parser Probleme

    Hallo... habe 2 Dateien... einmal XML Datei und PH Datei, aber der Parser macht nicht, was er soll :-(

    Habt ihr Rat?

    condor.xml:

    PHP-Code:
      <?xml version="1.0" encoding="UTF-8" ?> 
     <availabilityResponse>
     <flightList fromIata="SXF" toIata="PMI" flightsFound="2">
     <flightOptions>
     <flightOption>
      <fromDate>2006-10-04</fromDate> 
      <fromTime>06:20:00</fromTime> 
      <flightNum>DE3780</flightNum> 
      <price amount="139.00" currency="EUR" specialOffer="true" /> 
      </flightOption>
     <flightOption>
      <fromDate>2006-10-04</fromDate> 
      <fromTime>09:50:00</fromTime> 
      <flightNum>DE3888</flightNum> 
      <price amount="187.00" currency="EUR" specialOffer="true" /> 
      </flightOption>
      </flightOptions>
      </flightList>
     <flightList fromIata="PMI" toIata="SXF" flightsFound="2">
     <flightOptions>
     <flightOption>
      <fromDate>2006-09-25</fromDate> 
      <fromTime>14:40:00</fromTime> 
      <flightNum>DE1821</flightNum> 
      <price amount="109.00" currency="EUR" specialOffer="true" /> 
      </flightOption>
     <flightOption>
      <fromDate>2006-10-06</fromDate> 
      <fromTime>08:20:00</fromTime> 
      <flightNum>DE5717</flightNum> 
      <price amount="159.00" currency="EUR" specialOffer="true" /> 
      </flightOption>
      </flightOptions>
      </flightList>
      </availabilityResponse>

    und condor.php:


    PHP-Code:
    <?php
    // Umwandlungstabelle definieren
    $tag_tabelle = array(
      
    "FROMDATE" => "B",
      
    "FROMTIME" => "B",
      
    "FLIGHTNUM" => "P"
    );

    // start_element() - wird vom XML-Parser bei öffnenden
    // Tags aufgerufen
    function start_element$parser$name$attribute )
    {
      
    // Umwandlungstabelle in den lokalen Scope holen
      
    global $tag_tabelle;

      
    // Testen, ob den aktuelle Tag in der Tabelle definiert ist 
      
    if( isset( $tag_tabelle$name ] ) )
      {  
        
    // öffnenden Tag ausgeben
        
    print "<" $tag_tabelle$name ] . ">";
      }
    }

    // end_element() - wird vom XML-Parser bei schließenden
    // Tags aufgerufen
    function end_element$parser$name )
    {
      
    // Umwandlungstabelle in den lokalen Scope holen
      
    global $tag_tabelle;
         
      
    // Testen, ob der aktuelle Tag in der Tabelle definiert ist 
      
    if( isset( $tag_tabelle$name ] ) )
      {  
        
    // Schließenden Tag ausgeben
        
    print "</" $tag_tabelle$name ] . ">";
      }
    }

    // daten() - wird vom XML-Parser für CDATA-Bereiche aufgerufen 
    function daten$parser$data )
    {
      
    // Datenbereich ausgeben
      
    print $data;
    }

    // Instanz des XML-Parsers erzeugen
    $parser xml_parser_create();

    // Parameter des XML-Parsers setzen 
    xml_parser_set_option$parserXML_OPTION_CASE_FOLDINGtrue ); 

    // Handler für Elemente ( öffnende / schließende Tags ) setzen 
    xml_set_element_handler$parser"start_element""end_element" ); 
    // Handler für Daten ( CDATA ) setzen
    xml_set_character_data_handler$parser"daten" );

    // Versuchen, die Datei zu öffnen
    if (! ( $fp fopen"condor.xml""r" ) ) )
    {
      
    // Fehler -> Ausführung abbrechen
      
    die( "XML Fehler: Konnte Datei nicht öffnen." );
    }

    // Datei zeilenweise auslesen
    while( $data fread$fp4096 ) )
    {
      
    // Versuchen, die aktuelle Zeile zu parsen
      
    if( !xml_parse$parser$datafeof$fp ) ) )
      {
        
    // Fehler -> Ausführung abbrechen
        
    die(  "XML Fehler: " 
              
    xml_error_stringxml_get_error_code$parser ) ) . 
              
    " in Zeile " .
              
    xml_get_current_line_number$parser )
           );
      }
    }

    // Vom XML-Parser belegten Speicher freigeben
    xml_parser_free$parser );
    ?>


    Könnt Ihr helfen? *help*

  • #2
    Re: XML Parser Probleme

    Original geschrieben von sabinchen
    aber der Parser macht nicht, was er soll :-(
    du hast dich präzise ausgedruckt!!!
    deshalb bekommst du von mir ein prazise Antwort:
    ein script macht nicht was er soll, sondern das was drin steht
    und dein macht genau das.
    Slava
    bituniverse.com

    Kommentar

    Lädt...
    X