Announcement

Collapse
No announcement yet.

XML auslesen und in MySQL-DB schreiben

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • XML auslesen und in MySQL-DB schreiben

    Hallo,

    mit XML fange ich gerade erst an und komme mit einfachen Dokumenten so einigermaßen zurecht.

    Beispiel:

    PHP Code:
    <articleExport>
    -
    <
    exportMetas>
    <
    channel>Horoskope</channel>
    <
    subChannel>Wochenhoroskop</subChannel>
    -
    <
    dates>
    <
    begin>2009-07-06</begin>
    <
    end>2009-07-12</end>
    </
    dates>
    </
    exportMetas>
    -
    <
    exportItems>
    -
    <
    item>
    <
    zodiacSign>Widder</zodiacSign>
    -
    <
    content_love>
    <
    headline>Love Friends</headline>
    -
    <
    content>
    In Liebesdingen sind sie sehr kritisch
    </content>
    </
    content_love>
    -
    <
    content_job>
    <
    headline>Job Cash</headline>
    -
    <
    content>
    Im Job läufts gut
    </content>
    </
    content_job>
    -
    <
    content_fitness>
    <
    headline>Fitness Feeling</headline>
    -
    <
    content>
    Sie könnten etwas mehr Fitness vertragen
    </content>
    </
    content_fitness>
    </
    item>
    </
    exportItems>
    </
    articleExport
    Dies lese ich wie folgt aus:

    PHP Code:
    $backend 'wochenhoroskop.xml';
     
    $handle = @fopen($backend,'r');

     if(
    $handle !== false)
     {
          
    $xml simplexml_load_file($backend);
        
    // Titel auslesen
          
    $title $xml->exportMetas->subChannel;

             
    // Woche von bis auslesen und umwandeln
        
    $date $xml->exportMetas->dates->begin;
        
    $zb explode('-'$date);
        
    $datebegin $zb[2].'.'.$zb[1].'.'.$zb[0];
             
    $end $xml->exportMetas->dates->end;
        
    $ze explode('-'$end);
        
    $dateend $ze[2].'.'.$ze[1].'.'.$ze[0].'';

        
    // Pfad zum Sternzeichen
        
    $res $xml->xpath('/articleExport/exportItems/*');

        
    $fehler 0;
             
    // Insert Alle
        
    $i 0;
                while (
    $i 12)

        {
                             if ( 
    $res[$i] == $res[0] ) {$resid '00';}
                             elseif ( 
    $res[$i] == $res[1] ) {$resid '01';}
                             elseif ( 
    $res[$i] == $res[2] ) {$resid '02';}
                             elseif ( 
    $res[$i] == $res[3] ) {$resid '03';}
                             elseif ( 
    $res[$i] == $res[4] ) {$resid '04';}
                             elseif ( 
    $res[$i] == $res[5] ) {$resid '05';}
                             elseif ( 
    $res[$i] == $res[6] ) {$resid '06';}
                             elseif ( 
    $res[$i] == $res[7] ) {$resid '07';}
                             elseif ( 
    $res[$i] == $res[8] ) {$resid '08';}
                             elseif ( 
    $res[$i] == $res[9] ) {$resid '09';}
                             elseif ( 
    $res[$i] == $res[10] ) {$resid '10';}
                             elseif ( 
    $res[$i] == $res[11] ) {$resid '11';}

                        
    $sql "INSERT INTO wochenhoroskop (resid,zodiacsign,datebegin,dateend,title,headline_love,headline_job,headline_fitness,content_love,content_job,content_fitness,fehler)
                     VALUES ('"
    .$resid."','".$res[$i]->zodiacSign."','".$datebegin."','".$dateend."','".$title."','".$res[$i]->content_love->headline."','".$res[$i]->content_job->headline."','".$res[$i]->content_fitness->headline."','".$res[$i]->content_love->content."','".$res[$i]->content_job->content."','".$res[$i]->content_fitness->content."','$fehler')";
                     
    $i++;
                
    $result mysql_query($sql) or die(mysql_error());
        }

     } 
    und funktioniert, die Daten werden in die DB geschrieben.


    Fall 2:

    Die Datei sieht (anders) folgendermaßen aus:

    PHP Code:
    <horoscope:horoscope>
    &
    #8722;
    <horoscope:horoscope date="2009-07-05" validuntil="2009-07-31T23:59:59.00">
    &
    #8722;
    <horoscope:zodiacsign name="Widder" fromdate="2009-03-21" todate="2009-04-20">
    &
    #8722;
    <horoscope:monthlyhoroscope>
    &
    #8722;
    <horoscope:section title="Lust & Liebe">
    In Liebesdingen sind sie sehr kritisch
    </horoscope:section>
    &
    #8722;
    <horoscope:section title="Beruf & Finanzen">
    Ihr Beruf macht ihnen Freude
    </horoscope:section>
    &
    #8722;
    <horoscope:section title="Gesundheit & Fitness">
    Ihnen geht es gesundheitlich gut
    </horoscope:section>
    </
    horoscope:monthlyhoroscope
    Wie lese ich diese Daten aus? Wenn möglich bitte mit Beispiel auf die Datei Fall 2 bezogen.

    Danke.
Working...
X