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.