Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Wer kennt sich mit den PHP SimpleXML Funktionen aus?

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
pvdb
PostRank 5
PostRank 5
Beiträge: 321
Registriert: 16.01.2005, 22:37
Wohnort: Hannover

Beitrag von pvdb » 03.07.2008, 09:37

Hi,

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&#40;$xml_str&#41;;
foreach &#40;$xml->product as $product&#41; 
&#123;
   // show product
   echo $product->id . " | " . $product->name . " | " . $product->model . "<br>"; 
      
   // show eans
   $i = 0;
   while &#40;true&#41;
   &#123;
      if &#40;isset&#40;$product->eans->ean&#91;$i&#93;&#41;&#41;
	  &#123;
	     echo $product->eans->ean&#91;$i&#93; . "<br>";			 
		 $i++;
	  &#125;
	  else
	     break;		 
   &#125;
      
   echo "<hr>";
&#125;
?>
Ich nutze ja eine while Schleife um die Barcodes (eans) zu lesen und das müsste ja auch irgendwie mit einem foreach gehen? Ich hatte es leider nicht so hinbekommen.

Phil