Hallo,
Ich habe eine XML-datei die etwa folgendem Aufbau entspricht:
<?xml version="1.0" encoding="ISO-8859-1"?>
<Katalog>
<Buch Bestellnr="111-222-333" Kategorie="Computer">
<Titel>Buchtitel</Titel>
<Autor>Name des Autors</Autor>
</Buch>
</Katalog>
Um diese mit Expat zu parsen habe ich nun, etwas vereinfacht, den folgenden Code:
<?php
function startElement($parser, $element_name, $element_attribute) {
}
function endElement($parser, $element_name) {
}
function cdata($parser, $element_inhalt) {
echo $element_inhalt;
}
$xmlFile = file("inhalt.xml");
$parser = xml_parser_create();
xml_set_element_handler($parser, "startElement", "endElement");
xml_set_character_data_handler($parser, "cdata");
foreach($xmlFile as $elem)
{
xml_parse($parser, $elem);
}
xml_parser_free($parser);
?>
Soweit so gut. Nur beinhaltet die Ausgabe nur die Zeichendaten in den Tags <TITEL> und <AUTOR> nicht aber die Werte im Tag <BUCH>. Wie kriege ich PHP dazu die Werte in "Kategorie" und "Bestellnr" auszugeben.
Bin Euch für einen Tipp dankbar.
Ich habe eine XML-datei die etwa folgendem Aufbau entspricht:
<?xml version="1.0" encoding="ISO-8859-1"?>
<Katalog>
<Buch Bestellnr="111-222-333" Kategorie="Computer">
<Titel>Buchtitel</Titel>
<Autor>Name des Autors</Autor>
</Buch>
</Katalog>
Um diese mit Expat zu parsen habe ich nun, etwas vereinfacht, den folgenden Code:
<?php
function startElement($parser, $element_name, $element_attribute) {
}
function endElement($parser, $element_name) {
}
function cdata($parser, $element_inhalt) {
echo $element_inhalt;
}
$xmlFile = file("inhalt.xml");
$parser = xml_parser_create();
xml_set_element_handler($parser, "startElement", "endElement");
xml_set_character_data_handler($parser, "cdata");
foreach($xmlFile as $elem)
{
xml_parse($parser, $elem);
}
xml_parser_free($parser);
?>
Soweit so gut. Nur beinhaltet die Ausgabe nur die Zeichendaten in den Tags <TITEL> und <AUTOR> nicht aber die Werte im Tag <BUCH>. Wie kriege ich PHP dazu die Werte in "Kategorie" und "Bestellnr" auszugeben.
Bin Euch für einen Tipp dankbar.
Kommentar