in meiner Anwendung nutze ich ein SimpleXML zum einlesen von Daten. In dem XML befinden sich mehrere Produkte, wobei jedes Produkt mehrere Barcodes (eans) haben kann.
Das einlesen der Produkte stellt kein Problem dar. Hierzu findet man ja auch viele Beispiele im Internet. Nun gehts aber eine Ebene tiefer und ich will die Barcodes einlesen.
Ich habe es SimpleXML Konform leider nicht geschaft, sondern nach langen veruschen nur mit einem Umweg (Marke Eigenbau:)). Es haut so zwar hin, aber ich finde den weg nicht schön und wollte mal schauen ob hier jemand ist, der wir zeigen kann, wie ich die Barcodes auch besser auslesen kann.
Ich habe mein Problem mal auf 50 Zeilen Code gedrosselt, die man sich in ein php file kopieren und gleich ausführen kann.
Code: Alles auswählen
<?
// test xml
$xml_str = '<?xml version="1.0" encoding="ISO-8859-1"?>
<products>
<product>
<id>10000</id>
<name>duke forever</name>
<model>DNF3DS</model>
<eans>
<ean>4041377002132</ean>
<ean>123456789</ean>
<ean>123445664534</ean>
</eans>
</product>
<product>
<id>10001</id>
<name>Technische Analyse Buch</name>
<model>TAB23GD</model>
<eans>
<ean>9783898790628</ean>
</eans>
</product>
</products>';
// read and parse xml
$xml = new SimpleXMLElement($xml_str);
foreach ($xml->product as $product)
{
// show product
echo $product->id . " | " . $product->name . " | " . $product->model . "<br>";
// show eans
$i = 0;
while (true)
{
if (isset($product->eans->ean[$i]))
{
echo $product->eans->ean[$i] . "<br>";
$i++;
}
else
break;
}
echo "<hr>";
}
?>
Phil