Brauche unterstützung betreffend XML und PHP

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

  • Brauche unterstützung betreffend XML und PHP

    Hallo Leute,

    ich bräuchte da mal bitte eure hilfe:

    Ich habe eine xml-Datei und möchte diese nun formatiert per PHP im Web ausgeben:

    So sieht die xml-Datei aus:

    Code:
    <?xml version="1.0"?> 
    <data>
    	<fund name="Ariconsult Ausgewogen" wkn="" isin="AT0000810643" date="10.08.2006" value="10,69"/>
    	<fund name="Ariconsult Global" wkn="" isin="AT0000765383" date="10.08.2006" value="10,42"/>
    	<fund name="Ariconsult Konservativ" wkn="" isin="AT0000615836" date="10.08.2006" value="11,09"/>
    </data>
    Und das Ergebnis sollte so aufgebaut sein:

    Datum: 10.08.2006

    Wertpapier ISIN Kurs
    Ariconsult Ausgewogen AT0000810643 10,69
    Ariconsult Global AT0000765383 10,42
    Ariconsult Konservativ AT0000615836 11,09

    (Die Daten sollen in einer Tabelle angezeigt werden, so dass alles schön formatiert ist)


    Kann man das überhaupt so realisieren? Ich habe hier im Forum etwas herumgesucht, aber nichts gefunden, mit dem ich was anfangen kann.

    Muss das xml-document auch anders aussehen, wenn ich das Datum nur 1x angezeigt haben möchte?

    Bitte um unterstützung.

    LG, m-werk
    LG, m-werk

  • #2
    Re: Brauche unterstützung betreffend XML und PHP

    Ein Fall für XSL ...?
    http://de.selfhtml.org/xml/darstellung/
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      und solltest du keine möglichkeit haben xslt zu nutzen, bleiben dir wohl
      nur preg_match und konsorten

      http://de3.php.net/manual/de/function.preg-match.php
      **********
      arkos
      **********

      Kommentar


      • #4
        PHP-Code:
        <?php
        error_reporting
        (E_ALL);

        $TXT = <<<EOF
        <?xml version="1.0"?>  
        <data> 
        <fund name="Ariconsult Ausgewogen" wkn="" isin="AT0000810643" 
        date="10.08.2006" value="10,69"/> 
        <fund name="Ariconsult Global" wkn="" isin="AT0000765383"
         date="10.08.2006" value="10,42"/> 
        <fund name="Ariconsult Konservativ" wkn="" isin="AT0000615836"
         date="10.08.2006" value="11,09"/> 
        </data>
        EOF;
        $pattern = '/<fund\sname=\"([^\"]++)\".*?isin=\"([^\"]++)
        \"\s++date=\"([^\"]++)\"\s++value=\"([^\"]++)\"\s*\/>\s*/s';
        PHP-Code:
        preg_match_all($pattern$TXT$arrayPREG_PATTERN_ORDER);

        echo 
        '<pre>'print_r($arraytrue), '</pre>';

        ?> 
        Slava
        bituniverse.com

        Kommentar


        • #5
          Ich kappier's net.

          Wenn ich den obrigen code mal so teste, kommt folgendes Ergebniss:

          Array
          (
          [0] => Array
          (
          )

          [1] => Array
          (
          )

          [2] => Array
          (
          )

          [3] => Array
          (
          )

          [4] => Array
          (
          )

          )

          LG, m-werk
          Zuletzt geändert von m-werk; 20.09.2006, 15:12.
          LG, m-werk

          Kommentar


          • #6
            http://www.regex-tester.de/regex_20060920155319.html
            Slava
            bituniverse.com

            Kommentar


            • #7
              Ohhhh DANKE

              Jetzt hab ich nur noch eine Sache:

              Wie schaff ich es, das die Daten in eine Tabelle kommen und dass die xml-Datei geladen wird, da ich diese nicht in der php haben möchte.
              LG, m-werk

              Kommentar


              • #8
                So, nun hab ich folgenden Code mal eingebaut:

                PHP-Code:
                <?php
                error_reporting
                (E_ALL);

                $file "ariconsult.xml";

                function 
                trustedFile($file
                {
                   
                // only trust local files owned by ourselves
                   
                if (!eregi("^([a-z]+)://"$file
                       && 
                fileowner($file) == getmyuid()) {
                           return 
                true;
                   }
                   return 
                false;
                }

                $pattern '/<fund\sname=\"([^\"]++)\".*?isin=\"([^\"]++)\"\s++date=\"([^\"]++)\"\s++value=\"([^\"]++)\"\s*\/>\s*/s';
                preg_match_all($pattern$file$arrayPREG_PATTERN_ORDER);

                echo 
                '<pre>'print_r($arraytrue), '</pre>';

                ?>
                Das Ergebniss ist jetzt wieder:

                Array
                (
                [0] => Array
                (
                )

                [1] => Array
                (
                )

                [2] => Array
                (
                )

                [3] => Array
                (
                )

                [4] => Array
                (
                )

                )

                Mir scheint, dass jetzt zwar die Datei geöffnet wird, es auch richtig gelesen wird aber ausgegeben wird's nicht.
                LG, m-werk

                Kommentar


                • #9
                  0)fundsname heist fund\sname
                  strg+c strg+v benutzen
                  1) du suchst in API functionen, wie z.b.s file_get_contents die Inhalt von xmldatei in eine variable als string abspeichert
                  2)dann machst du den regex die ich dir vorgeschlagen habe
                  3)mit den schleifen durchläufst du die für dich interesante arrayfelder und
                  mit echo machst du die ausgabe von html-code mit den passenden array-inhalten.
                  4) wie eine html-tabelle aufgebaut ist muss du wissen.
                  bei weiteren problemen einfach fragen.
                  5) schau dir ein xslt tutorial, weil das eine standartlösing ist
                  Zuletzt geändert von Slava; 20.09.2006, 17:04.
                  Slava
                  bituniverse.com

                  Kommentar


                  • #10
                    du könntest natürlich auch simplexml benutzen.

                    @slava: "standart" ist die art zu stehen
                    MfG
                    aim
                    Lies mich jetzt!
                    - OT-Tags-Liebhaber und BB-Code-Einrücker -

                    Kommentar


                    • #11
                      Original geschrieben von aimbot
                      du könntest natürlich auch simplexml benutzen.

                      @slava: "standart" ist die art zu stehen
                      ich versuche mich zu verbessern
                      so ist es , wenn man erst mit 27 neue sprache erlernen versucht.

                      und dem @m-werk würde ich empfehlen einwenig mit schleifen und allgemeinen Programmiertechniken zu beschäftigen, dann wird es auch mit jeder Bibliothek klappen.
                      Slava
                      bituniverse.com

                      Kommentar


                      • #12
                        wieso mit regex?? ich würds glaub ich über die DOM-Library versuchen zu lösen!
                        http://www.php.net/manual/de/ref.dom.php

                        Kommentar


                        • #13
                          Es ist vollkpmmen egal, womit du das machst.
                          eine Datei muss irgendwie dem Script zur Verfügung stehen.
                          es kann keine Bibliothek funktionieren, so lange die Daten nicht ausgelesen werden.
                          Also regex sowieso nicht
                          schau dir mal was er mit meinem funktionierendem regex gemacht hat.
                          Statt xml-inhalt zu übergeben, hat er Dateiname rein gesteckt.
                          Und wenn die Daten schon da sind, muss man eine Vorstellung haben, wie man sie dann in eine Html- Tabelle reinhaut.
                          Das kann er in Moment auch nicht.
                          Also Schritt für Schritt weiterlernen
                          Slava
                          bituniverse.com

                          Kommentar


                          • #14
                            Hallo, so nun habe ich folgenden Code drinn:

                            PHP-Code:
                            <?php
                            error_reporting
                            (E_ALL);

                            $file file_get_contents("ariconsult.xml");
                            //echo "Daten: $file<br>";

                            $pattern '/<fund\sname=\"([^\"]++)\".*?isin=\"([^\"]++)\"\s++date=\"([^\"]++)\"\s++value=\"([^\"]++)\"\s*\/>\s*/s';
                            preg_match_all($pattern$file$arrayPREG_PATTERN_ORDER);

                            echo 
                            '<pre>'print_r($arraytrue), '</pre>';

                            ?>
                            Ich habe bis jetzt nur das mal mit dem file_get_contents gemacht.
                            (Ich hoffe, das ist mal so richtig.)

                            Ich hab bis jetzt nur Punkt 1 und 2 von deiner Beschreibung @Slava gemacht.


                            Wenn ich jetzt die Datei aufrufe, kommt folgende Meldung:


                            Die XML-Seite kann nicht angezeigt werden
                            Die XML-Eingabe kann nicht angezeigt werden, wenn Stylesheet verwendet wird. Beheben Sie den Fehler und klicken Sie dann auf Aktualisieren, oder wiederholen Sie den Vorgang später.


                            --------------------------------------------------------------------------------

                            Ungültig auf der obersten Ebene im Dokument. Fehler beim Bearbeiten der Ressource 'http://www.ariconsult.com/zusatz/test/te...

                            Daten: <?xml version="1.0"?>



                            PS: fundsname habe ich im PHP als fund\sname stehen. Es erscheint nur hier nicht so.


                            LG, m-werk
                            Zuletzt geändert von m-werk; 21.09.2006, 08:32.
                            LG, m-werk

                            Kommentar


                            • #15
                              So, hab nun etwas gerumgebastelt.

                              Mir fehlt jetzt nur noch die Schleife. Ansonsten hab ich das Ergebniss:

                              PHP-Code:
                              <?php
                              error_reporting
                              (E_ALL);

                              $file file_get_contents("ariconsult.xml");

                              $pattern '/<fund\sname=\"([^\"]++)\".*?isin=\"([^\"]++)\"\s++date=\"([^\"]++)\"\s++value=\"([^\"]++)\"\s*\/>\s*/s';
                              preg_match($pattern$file$result);

                              echo 
                              "Der Fonds-Name lautet {$result[1]} und hat die ISIN: {$result[2]} mit dem Kurs {$result[4]}\n";

                              ?>
                              LG, m-werk

                              Kommentar

                              Lädt...
                              X