PHP Script zum auslesen von einzelnen Werten in XML-Files

Sojo

Grünschnabel
Heidiho..

Ich bin auf der Suche nach einem Script zum auslesen von XML-Dateien. Habe zwar bereits einige Beispiele gefunden aber verstehe nicht, wie ich diese auf meine Bedürfnisse abändern kann. Die Tatsache, dass ich weder PHP noch XML beherrsche erschwert die Sache dazu noch ungemein. :confused:

Konkret geht es darum:

Auf der Homepage des Amtes für Wasser und Geologie der Schweiz wird eine XML-File zur Verfügung gestellt, welche aktuelle Daten über Pegelstand, Wassertemperatur, etc enthält. Das Ziel ist es, einzelne Elemente aus dieser XML-Datei auszulesen und auf einer anderen Page anzuzeigen.

Die File ist unter folgender URL abrufbar: http://www.hydrodaten.admin.ch/lhg/SMS.xml

Ich brauche beispielsweise die folgende Zahl:

Code:
<MesPar DH="HBCHa" StrNr="2135" Typ="10" Var="10">
<Name>Aare - Bern</Name>
<Datum>12.04.2007</Datum>
<Zeit>19:00</Zeit>
<Wert>113.23</Wert>
<Wert dt="-24h">100.93</Wert>
<Wert Typ="delta24">12.296</Wert>
<Wert Typ="m24">109.11</Wert>
<Wert Typ="max24">119.96</Wert>
<Wert Typ="min24">99.14</Wert>
</MesPar>

Alle Scripts welche ich bisher gefunden habe, lesen entweder die ganze Datei aus oder lassen sich nicht (jedenfalls nicht durch mich) auf meine Bedürfnisse abstimmen. Wie schaffe ich es denn, nur beispielsweise diesen einzelnen Wert auszulesen?
 
Hallo,
also wenn du PHP 5 verwendest, kannst du [phpf]simplexml[/phpf] verwenden.
Bei PHP 4 könnten dir die so genannten Regulären Ausdrücke weiterhelfen.

mfg
forsterm
 
Danke für deine Antwort.

Ich Arbeite jetzt seit ungefähr zwei Tagen an dem Problem und verstehe ehrlich gesagt nur Bahnhof. Bei simplexml war ich schon einmal. Da ich von PHP allerdings keine Ahnung habe, konnte ich nicht viel damit anfangen.

Kennt jemand ein gutes und vor allem einfaches Tutorial welches mir zeigt, wie ich dies bewerkstelligen kann? Gegoogelt und gefunden habe ich schon. Aber ein funktionierendes Script habe ich damit eben noch nicht zustande gebracht.

Vor allem weiss ich nicht, wie ich die Informationen die ich benötige aus der XML-File herausfiltern kann.
 
Hallo,
als erstes solltest du mal wissen, welche PHP Version dein Server unterstütz.
Um das heraus zu finden, legst du eine Datei namens info.php mit folgendem Inhalt an:
PHP:
<?php
    phpinfo();
?>
Diese Datei lädst du dann auf deinen Webspace und rufst sie auf, dort steht dann ganz oben dein PHP Version.

mfg
forsterm
 
Hallo,
probier mal das hier:
PHP:
<pre>
<?php
    $xml = file_get_contents('http://www.hydrodaten.admin.ch/lhg/SMS.xml');
    preg_match_all('/<MesPar(.*?)>(.*?)<\/MesPar>/si', $xml, $messungen);

    foreach ($messungen[2] as $messung){
        preg_match('/<Name>(.*?)<\/Name>/si', $messung, $name);
        preg_match('/<Datum>(.*?)<\/Datum>/si', $messung, $datum);
        preg_match('/<Zeit>(.*?)<\/Zeit>/si', $messung, $zeit);
        preg_match_all('/<Wert(.*?)>(.*?)<\/Wert>/si', $messung, $werte);

        echo 'Name: '.$name[1].'<br />';
        echo 'Datum: '.$datum[1].'<br />';
        echo 'Zeit: '.$zeit[1].'<br />';
        echo '<ul>';

        $i = 1;
        foreach ($werte[2] as $wert){
            echo '<li>Wert'.$i.': '.$wert.'</li>';
            $i++;
        }
        echo '</ul><hr />';
    }
?>
</pre>

mfg
forsterm
 
Zuletzt bearbeitet:
Zurück