Home Sitemap Impressum
SEO Welten - Webcoding, Editoren, Scripte und Anwendungen
SEO Welten

 

 
AGB
Buchempfehlungen

Der dritte Weg, um mit SimpleXML Attribute auszulesen

Auslesen von Werten und Ansprechen der Knoten mit XPath - Teil 3

Übersicht / Seite:

  1. Auslesen von Attributen (deren Namen und Werte, mit attributes()) Teil 1
  2. Der zweiter Weg (Auslesen mit der Funktion children()) Teil 2
  3. Der dritter Weg (Ansprechen der Knoten mit XPath) Teil 3

Immer wieder kommt es vor, dass bei verschachtelten XML-Dokumenten ein Knoten in der Dokumentenhierarchie übersehen wurde. Vor allem Einsteiger finden dann den Fehler in einem Listing nur schwer. Doch Knoten lassen sich mit Hilfe von XPath auch direkt ansprechen.
Bei XPath handelt es sich um eine auf XML beruhende Abfragesprache, wobei das Kürzel XPath für XML Path Language steht. Path bedeutet Weg bzw. Pfad, wobei in vielen Programmiersprachen der Pfadname einer Datei gemeint ist, unter dem diese Datei im jeweiligen Betriebssystem erreichbar ist. Bei XPath ist mit Path jedoch nicht der Pfadname zur Datei gemeint, sondern der Pfad zu einem bestimmten Knoten innerhalb des Dokuments. Ist ein Knoten oder dessen Kinder nur über einem Pfad im Dokument zu erreichen, lässt sich dieser Knoten oder dessen Kinder auch direkt mit Namen ansprechen und der Pfad braucht nur durch zwei // Slashes angegeben zu werden.

Ausgehend von der Beispieldatei fluesse.xml werden im folgendem Beispiel die Kindknoten mit // Fluss direkt adressiert und die Werte der Attribute in einer Liste ausgegeben. Mit einem Switch-Case Vergleich wird kontrolliert, ob der Flussname Jenissei enthalten ist und falls ja, so wird dieser Wert fett markiert.

Ein Beispiel mit XPath:

<?php

$datei = "fluesse.xml";

    $Response = @simplexml_load_file($datei) or
    die ("Fehler beim Laden der Datei: ".$datei."\n");

    $result = $Response->xpath("//Fluss");
    $lfbis  = count($result);

    echo "\t<ul>\n";

for ($lf = 0; $lf < $lfbis; $lf++) {

    switch ($result[$lf]["Name"]) {

        case "Jenissei":
        echo "\t<li><b>".$result[$lf]["Name"]." - ".
                         $result[$lf]["Laenge"]." km</b></li>\n";
        break;

        default:
        echo "\t<li>".$result[$lf]["Name"]." - ".
                      $result[$lf]["Laenge"]." km</li>\n";
        }
}
    echo "\t</lu>\n";

?>

Das kleine Listing würde folgende Ausgabe erzeugen:

  • Nil - 6.852 km
  • Amazonas - 6.448 km
  • Jangtsekiang - 6.380 km
  • Mississippi - 3.778 km
  • Jenissei - 5.540 km
  • Ob - 3.650 km
  • Amur - 2.824 km

Nicht immer ist die Zuordnung und Adressierung so einfach möglich, wie im vorliegendem Beispiel. Zum Beispiel, wenn die Flussnamen noch nach geografischer Lage geordnet wären und dabei der Name eines Flusses mehrfach als Wert in den Attributen auftaucht. In diesem Fall müsste der vollständige Pfad angegeben werden, lediglich auf die Benennung des Wurzelknotens könnte verzichtet werden.

Zwei Beispiele mit vollständiger Pfadangabe, mit und ohne die Angabe des Wurzelknotens:

// Ohne Angabe des Wurzelknotens:

$result = $Response->xpath("//Request/Fluesse/Fluss");

// Mit Angabe des Wurzelknotens:

$result = $Response->xpath("/Response/Request/Fluesse/Fluss");

Neben den vorgestellten Möglichkeiten gibt es noch weitere Wege, um die Werte von Attributen aus einem XML-Dokument auszulesen, so zum Beispiel mit DOM-XML, wobei DOM als Kürzel für das Document Object Model steht. Als kurze Einführung ins Thema sollten die bisher vorgestellten Möglichkeiten jedoch erst einmal genügen.

Auslesen von Attributen - Teil 1 | Teil 2 « zurück

Navigation

Finden und
gefunden werden ...


Autoritäten im
Internet

Die Kehrseite
Das Wesen

Zukunftsaussichten

Studien & Strategien
Verbreitung & Bedeutung
Internet & Medien


- Optimierung -

Einstieg Optimierung
Erfolg oder Misserfolg

 

Webcoding

Übersicht

Einführung ins Thema


Amazon Web Service
Request und Response
Anfragen und Anträge
Weitere Beispiele
Einfaches Script - Unicode
Einfaches Script - ISO
Weitere Einzelheiten


Images/Bilder prüfen
Einbinden von Dateien


RegEx

Reguläre Ausdrücke


Copyright © 2006 - Verlag Horst Müller - Stendal | Datenschutz | Nutzungsbedingungen