Diese Methode ist besonders dazu gedacht, einen schnellen Zugriff auf XML-Dateien zu erhalten, die im Grunde flache Tabellen sind, und eventuell sogar nichts anderes als ein XML-Export aus einer Datenbanktabelle oder Tabellenkalkulation sind.
<?xml version="1.0" encoding="ISO-8859-1"?>Dieses Beispiel macht es sich etwas schwerer, da auch Attribute und sogar ein Element mit untergeordneten Elementen enthalten sind.
Aufgabe: Alle Datensätze aus der Datei adressen.xml einlesen, die mit dem Tag eintrag eingeschlossen sind.
<?php
require_once("../xml-line.php");
$mylines = new xml_line("xml-files/adressen.xml", "hixml");
$mylines->get_record(0,"eintrag");
$mylines->xml_stream();
print $mylines->get_output();
?>
Ergebnis-Array:
<?php
echo "<pre>";
print_r($mylines->table_result);
echo "</pre>";
?>
Array ( [0] => Array ( [0] => Array ( [name] => Klausmann [vorname] => Heinz [anschrift/strasse] => Feldstrasse 5 [anschrift/strasse@info] => 3 x klingeln! [anschrift/plz] => 23456 [anschrift/ort] => Teststadt ) [1] => Array ( [name] => Meyer [vorname] => Guste [anschrift/strasse] => Tannhäuserweg 12 [anschrift/plz] => 98765 [anschrift/ort] => Nulldorf ) [2] => Array ( [name] => Katzbeck [vorname] => Karl-Heinz [anschrift/strasse] => An der Teststrecke 123a [anschrift/plz] => 63555 [anschrift/ort] => Netzbach ) ) )
Besonderheit: Die Zuordung von Attributen geschieht folgendermaßen:
['eintrag@datum']
Enthält ein Element des Datensatzes ein weiteres Element, wird dies
folgendermaßen in die Tabellenstruktur eingegliedert:
['anschrift/strasse']
Die get-record-Methode hat natürlich ihre Grenzen und eignet sich vor allem für Tabellen- oder Datenbankexporte. Wie in einer Datenbanktabelle muss jede Spalte einen anderen Namen haben. Würde hier ein gleichnamiges Element auftauchen, würde der vorige Wert überschrieben werden.
Aufgabe: Welchen Wert hat das Element name im zweiten Datensatz? Das Ergebnis-Array steckt in der Variablen table_result.
<?php
printf("<p>Der Wert ist: <b>%s</b></p>",
$mylines->table_result[0][1]['name']);
?>
Der Wert ist: Meyer
Noch einmal zur Erinnerung: Der erste Index zählt die aufgerufenen Methoden. In diesem Beispiel gibt es nur die eine, also [0]. Der Index [1] ist das zweite zurückgelieferte Ergebnis, da wir auch hier bei 0 anfangen zu zählen.