Inhalte aus XML File in ne db importieren...

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

  • Inhalte aus XML File in ne db importieren...

    Hallo Forum. Ich bin am ende... Zuerst weiss ich gar nicht ob ich hier richtig bin. Ich fang mal an, was ich hab und was ich damit machen will. Zum einen bekomme ich ein Textfile geliefert. Sieht ungefähr so aus (es geht um Wetterdaten):

    <WEAT_DATE>
    27.10.2004
    </WEAT_DATE>
    <WEAT_TODAY_D>
    Im Tagesverlauf zieht die Störungszone nach Osten ab, .....
    </WEAT_TODAY_D>
    <WEAT_TODAY_I>
    Nel corso della giornata la perturbazione si ...
    </WEAT_TODAY_I>
    <WEAT_TODAY_E>
    During the day the perturbation will shift...
    <WEAT_TDY_STATE_D>
    Das Wetter bleibt unbeständig. ...
    </WEAT_TDY_STATE_D>
    usw...


    Und ein teil der inhalte in den einzelnen Elementen will/muss ich in ne Mysql DB improtieren.

    Zuerst wollte ich das Textfile verarbeiten, hat aber ned wirklich funktioniert.
    Dann bekam ich den Tipp es in eine XML Struktur umzuwandeln und mit Expat zu parsen. Den Code wie ich das machen sollte sah ungefähr so aus:



    //die element sollte ich drumherum legen, dass es ne neue Struktu bekommt
    $xmlFile .= "<ELEMENT>";
    $xmlFile .= file_get_contents("w.txt");
    $xmlFile .= "</ELEMENT>";

    Und $xmlFile sollte ich dann mit expat parsen. Hab das auch soweit hinbekommen und alle Elemente ausgeben können, aber wenn ich euch den Code dazu zeige, wundert ihr euch sicher. Das ist einfach nur gepfuscht und hat superviele schwächen und ist einfach mies! (ich kenn mich damit auch einfach ned gescheid aus und so kann man mir einiges erzählen).
    Wenn gewünscht, kann ich den Quellcode mit dem ich es geparsed hab euch posten, macht aber keine Freude...

    Habt ihr eine Elegnatere Lösung, die mehr oder weniger "bulletproof" ist? Also ich will ein Teil der Elemente (alle deutschen Inhalte und ein paar temperaturen) alle 24 Std in meine DB schreiben.

    Danke schon mal

  • #2
    Ja, DOM oder SimpleXML. Stellt sich allerdings die Frage ob DOM bei deinem Hoster enabled ist (wenn's denn PHP4 ist) oder ob du PHP5 hast.
    "Ach was soll's? Dann bau ich mir halt meinen eigenen Vergnügungspark mit Blackjack und Nutten." - Bender

    Comment


    • #3
      DOM XML

      Hallo Nezzar,
      also php5 Hab ich leider ned, aber

      domxml

      DOM/XML DOM/XML API Version libxml Version HTML Support
      enabled 20020815 20510 enabled


      XPath Support XPointer Support
      enabled enabled

      Vielleicht nen kleinen Tipp, wie ich am besten anfange (hab noch nie etwas damit gemacht).

      Danke

      Comment


      • #4
        Dann schau mal in diesem Thread nach. Die dort gepostete Funktion sollte dir weiterhelfen.
        "Ach was soll's? Dann bau ich mir halt meinen eigenen Vergnügungspark mit Blackjack und Nutten." - Bender

        Comment


        • #5
          DOM XML

          Hi Nezzar, also das hat schon mal geholfen.
          habe erst das txt file in ein xml file konvertieren müssen, war aber kein problem. Mit der funktion aus dem anderen Forumbeitrag kann ich das file jetzt ganz gut auslesen und kann es mir mit print_r auch schon mal schön ausgeben.

          So sieht der Anfang des XML files, das ich erzeigt habe aus:
          <?xml version="1.0" encoding="iso-8859-1"?>
          <TEST>
          <WEAT_DATE>
          27.10.2004
          </WEAT_DATE>
          <WEAT_TODAY_D>
          ....

          Bekomme diese Ausgabe:

          Array
          (
          [#document] => Array
          (
          [0] => Array
          (
          [TEST] => Array
          (
          [0] => Array
          (
          [WEAT_DATE] =>
          27.10.2004

          [WEAT_TODAY_D] =>
          .....

          Das ist dann ein mehrdimensioanles Array, oder? (das ist ehrlich gesagt, das erst mal, das ich so ne Ausgabe zu sehen bekomme)
          Ich komm hier nicht mehr weiter. Was muss ich tun, um in das array zu kommen, wo es für mich interessant wird... Also hier hin:

          [WEAT_DATE] =>
          27.10.2004

          [WEAT_TODAY_D] =>
          .....

          das sind die infos an die ich rankommen muss... Hab wieder sehr wage sachen versucht und bin kläglich gescheitert...

          Bin ja mal auf ne Lösungsidee gespannt..

          Grüße

          Comment


          • #6
            Werte in mehrdimensionalen Arrays adressiert man so:
            PHP Code:
            $Array["Ebene1"]["Ebene2"]["DerWert"
            In deinem Fall also:
            PHP Code:
            $Arr['#document'][0]["TEST"][0]["WEAT_DATE"
            So ungefähr, bin mir nicht ganz sicher, ob ich die Struktur oben richtig gelesen (das nächste mal also den [code]-tag nicht vergessen).
            "Ach was soll's? Dann bau ich mir halt meinen eigenen Vergnügungspark mit Blackjack und Nutten." - Bender

            Comment


            • #7
              DOM XML

              Bingo, das wars. Also das file kann ich verarbeiten. Wenns fertig is, schick ich dir nen Link!

              Eventuell kommt nochmal was, weil ich ein weiteres XML file bekommen hab, das etwas komplizierter is... Aber Stück für Stück... Es war auf jeden ne fette Hilfe.
              Danke

              Comment

              Working...
              X