Externe XML-Datei in PHP auslesen
Hallo,
ich habe eine Frage zu XML und PHP.
Ich habe eine externe XML-Datei die ich per PHP auslesen und ausgeben will.
Irgendwie macht sich das jedoch nicht so einfach ...
Ich habe diverse Dinge gegooglet aber konnte die Beispiele nicht auf mein Szenario anwenden.
Ich habe nen Apache 2 auf Debian, PHP-7.0.
Kann mir jemand einen Denkanstoß geben wie genau das läuft?
ich habe eine Frage zu XML und PHP.
Ich habe eine externe XML-Datei die ich per PHP auslesen und ausgeben will.
Irgendwie macht sich das jedoch nicht so einfach ...
Ich habe diverse Dinge gegooglet aber konnte die Beispiele nicht auf mein Szenario anwenden.
Ich habe nen Apache 2 auf Debian, PHP-7.0.
Kann mir jemand einen Denkanstoß geben wie genau das läuft?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 319900
Url: https://administrator.de/forum/externe-xml-datei-in-php-auslesen-319900.html
Ausgedruckt am: 23.12.2024 um 02:12 Uhr
18 Kommentare
Neuester Kommentar
Ich will nicht die komplette XML-Datei auslesen, nur einen Teil mit Sensorwerten.
Kein Problem mit dem SimpleXMLElementGruß
Moin
Eigentlich nicht.
Schau mal ob die Lib funktioniert indem Du eine einfache XML erstellst und ausgibst.
Dann probier mal eine einfache Beispieldatei zu importieren.
Vieleicht ist Deine XML "ungültig" formatiert.
Es gibt durchaus Nuancen bei XMLs.
Stefan
Eigentlich nicht.
Schau mal ob die Lib funktioniert indem Du eine einfache XML erstellst und ausgibst.
Dann probier mal eine einfache Beispieldatei zu importieren.
Vieleicht ist Deine XML "ungültig" formatiert.
Es gibt durchaus Nuancen bei XMLs.
Stefan
<?php
$xmlstring = '<?xml version="1.0" encoding="utf-8"?><a><b><c>text</c><c>zeugs</c></b><d><c>code</c></d></a>';
$xml = simplexml_load_string($xmlstring);
$result = $xml->xpath('/a/b/c');
foreach($result as $itm){
echo $itm . "<br/>";
}
?>
Dann fehlt dir das PHP-XML Modul oder du hast eine vollkommen veraltete PHP Version..
Ein phpinfo(); zeigts dir!
Und schalte das error reporting ein. Das Beispiel geht aber definitiv.
Ein phpinfo(); zeigts dir!
Und schalte das error reporting ein. Das Beispiel geht aber definitiv.
Aha... da machts sich sichtlich wieder einer einfach ...
Meine Güte schon wieder Freidaach oder was? Knallt hier nen XML hin ohne zu schreiben was gemacht werden soll oder was das Ziel ist
Natürlich benutzt man dann stattdessen die Methode
simplexml_load_file() wenn man aus einer Datei lesen will! Nix mit include ...
Die XML-Dateien in den Beispielen sind irgendwie immer in das Dokument intigriert ... und wenn ich das via include reinhole dann gehts nicht mehr ...
Da sich die Daten innerhalb der XML immer ändern kann ich die nicht rein kopieren ...
Wir wissen ja noch nicht mal was du aus dem Dokument brauchst .Da sich die Daten innerhalb der XML immer ändern kann ich die nicht rein kopieren ...
Meine Güte schon wieder Freidaach oder was? Knallt hier nen XML hin ohne zu schreiben was gemacht werden soll oder was das Ziel ist
Die XML-Dateien in den Beispielen sind irgendwie immer in das Dokument intigriert ...
Natürlich benutzt man dann stattdessen die Methode
simplexml_load_file() wenn man aus einer Datei lesen will! Nix mit include ...
Du hast das Prinzip von SimpleXML wohl noch nicht verstanden, hier wird mit Objekten hantiert nicht mit Strings:
Ausgabe:
Für das Beispiel wurden nur 3 Spalten übernommen, den Rest solltest du mit dieser Steilvorlage jetzt selbst schaffen.
Gruß
$xml = simplexml_load_file("daten.xml");
$sensors = $xml->xpath('/alarmmanager/sensors/multisensor');
$table = '<table border="1"><tr><th>Device</th><th>Temperatur</th><th>humidity</th></tr>';
foreach($sensors as $sensor){
$table .= '<tr><td>'.$sensor->device.'</td><td>'. $sensor->values->temperature . '</td><td>' . $sensor->values->humidity.'</td></tr>';
}
$table .= '</table>';
echo $table;
Ausgabe:
Für das Beispiel wurden nur 3 Spalten übernommen, den Rest solltest du mit dieser Steilvorlage jetzt selbst schaffen.
Gruß