Hi Thomapyrien
Wie versprochen, hab ich mich hingesetzt und kleine Beispiele geschrieben.
Jedes Beispiel verwendet folgendes XML
Code:
<?xml version = "1.0" encoding ="iso-8859-1"?>
<buecher titel = "IT-Buchladen">
<buch>
<autor id = "ME">Meier</autor>
<titel>XML</titel>
<jahr>2002</jahr>
<details>
<seitenzahl>300</seitenzahl>
<ladenpreis waehrung = "euro">20</ladenpreis>
</details>
<!--lieferbar ab sofort -->
</buch>
<buch>
<autor id = "BA">Bauer</autor>
<titel>XSL</titel>
<jahr>2002</jahr>
<details>
<seitenzahl>450</seitenzahl>
<ladenpreis waehrung = "euro">28</ladenpreis>
</details>
<!--lieferbar ab 2. Quartal -->
</buch>
</buecher>
Erstes Beispiel:
Generelle Ausgabe des XML
Code:
<?
function startTag($xml_parser, $name, $attribut) {
// wird bei Start-Tag ausgeführt
list ($key, $value) = each ($attribut);
print "<br /><strong>$name</strong>";
while ($key) {
print " <i>$key="$value"</i>";
list ($key, $value) = each ($attribut);
}
print ": ";
}
function endTag ($xml_parser, $name) {
// wird bei Ende-Tag ausgeführt
}
function characterData ($xml_parser, $daten) {
// Ausgabe von PCDATA
print $daten;
}
$xml_parser = xml_parser_create(); // erzeugt neuen Parser
xml_set_element_handler ($xml_parser, "startTag", "endTag"); // legt Elemente Handler fest
xml_set_character_data_handler ($xml_parser, "characterData"); // legt Handler für PCDATA fest
$file = "buch.xml";
$fp = fopen ($file, "r");
$data = fread ($fp, 4096);
xml_parse ($xml_parser, $data, feof($fp));
xml_parser_free ($xml_parser);
fclose ($fp);
?>
zweites Beispiel:
XML wird als Tree ausgegeben, wobei nur die Tags ausgeben werden ohne Values
Code:
<?
function startTag($xml_parser, $name, $attribut) {
// wird bei Start-Tag ausgeführt
global $ebene;
for ($i = 0; $i < $ebene; $i++) {
print " ";
}
print "$namen";
$ebene++;
print "<br />";
}
function endTag ($xml_parser, $name) {
// wird bei Ende-Tag ausgeführt
global $ebene;
$ebene--;
}
$xml_parser = xml_parser_create(); // erzeugt neuen Parser
xml_set_element_handler ($xml_parser, "startTag", "endTag"); // legt Elemente Handler fest
$file = "buch.xml";
$tiefe = 0;
$fp = fopen ($file, "r");
$data = fread ($fp, 4096);
xml_parse ($xml_parser, $data, feof($fp));
xml_parser_free ($xml_parser);
fclose ($fp);
?>
Drittes Beispiel:
Gesamtes Auslesen der XML-Datei, mit Typen usw..
Code:
<html>
<head>
<title>Die Struktur einer XML-Datei parsen</title>
</head>
<body>
<h1>Strukur einer XML-Datei</h1>
<?
$xml_parser = xml_parser_create(); // erzeugt neuen Parser
$daten = implode (file ("buch.xml"), ""); // file() liest die Datei in ein Array ein
xml_parse_into_struct ($xml_parser, $daten, &$werte, &$index); // parst XML-Datei in assoziativen Array
xml_parser_free ($xml_parser);
?>
<table border="1" width="80%">
<tr>
<th>Tag</th>
<th>Typ</th>
<th>Ebene</th>
<th>Wert</th>
</tr>
<?
foreach ($werte as $w) { // Ausgabe der Daten des assoziativen Array
print "<tr>";
print "<td>".$w["tag"]."</td>";
print "<td>".$w["type"]."</td>";
print "<td>".$w["level"]."</td>";
print "<td>".$w["value"]."</td>";
print "</tr>";
}
?>
</table>
</body>
</hmtl>
Ich hoffe du kannst mit diesen Beispielen was anfangen.
Wenn fragen auftretten einfach melden