J32: wie diese xml form mit simple xml parsen

Hallo,

möchte gern daten die in dieser xml form vorliegen mit simple xml parsen.

  
<?xml version="1.0" encoding="ISO-8859-1"?>  
<product thumbnailUrl="" marketplaceUrl="" productTypeNumber="" item="" price="" productNumber="" caption="" sellerDescription="" storeUrl="">  
</product>  

Ist das denn möglich?

Ich hatte es bisher so versucht? Leider ohne Erfolg.

  
<?php  
$xml_file = simplexml_load_file("designtest.xml");  
  
foreach($xml_file->product as $row) {  
?>  
  
<?php print $row->item ?>  
<a href="<?php print $row->storeUrl ?>"><img class="design_image" src="<?php print $row->thumbnailUrl ?>" alt="" /></a>  
  
<?php print $row->sellerDescription ?>  
<br/><br/>  
  
<?php  
}  
  
?>  

ich bekomme hier einen - parsing error - simikolon erwartet.

Mit der mir bisher bekannten xml schreibweise funktioniert mein php teil wunderbar.

Was muss ich an meinem php teil ändern um eine ordentliche Anzeige zu bekommen?

danke

J32

  1. Hallo J32!

    ich bekomme hier einen - parsing error - simikolon erwartet.

    Mit Recht, würde ich sagen. Du hast ja auch oft kein Semikolon gesetzt, wo eines sein sollte. Du musst alle deine PHP-Anweisungen mit einem Strichpunkt abschließen:

    <?php print $row->item ?>

    ;

    <a href="<?php print $row->storeUrl ?>">

    ;

    An den anderen Stellen natürlich genau das gleiche, das sind nur zwei Beispiele.

    Schönes Wochenende und Gruß,

    Claudius

    1. Hallo J32!

      ich bekomme hier einen - parsing error - simikolon erwartet.

      Mit Recht, würde ich sagen. Du hast ja auch oft kein Semikolon gesetzt, wo eines sein sollte. Du musst alle deine PHP-Anweisungen mit einem Strichpunkt abschließen:

      <?php print $row->item ?>
                               ;
      <a href="<?php print $row->storeUrl ?>">
                                            ;

      An den anderen Stellen natürlich genau das gleiche, das sind nur zwei Beispiele.

      Schönes Wochenende und Gruß,

      Claudius

      Hallo Claudius,

      du hast natürlich recht mit Semikolons. Leider ist das nicht mein Problem.

      Allerdings dachte ich wenn ich einen Parsing Error erhalte hat das was mit dem xml file zu tun. Lieg ich da falsch?

      Wie auch immer. Ich versuche nochmal es detailierter zu erklären da ich allein nicht weiter komme.

      Meine Vermutung ist das es am Inhalt der xml attribute liegt. Leider kann ich den nicht ändern. Den bekomme ich so.

      <?xml version="1.0" encoding="ISO-8859-1"?>  
      <product thumbnailUrl="http://prodtn.cafepress.com/image.aspx?p=146914851&i=12608948&v=tn" marketplaceUrl="http://www.cafepress.com/passionforlife.146914851" productTypeNumber="70" item="Kids Light T-Shirt" price="17.9900" productNumber="146914851" caption="Paint ball for Life Kids Light T-Shirt" sellerDescription="Paint ball gun and paint ball mask design for paint ball fans! Get the paint ball shirts and paint ball gifts you want! Makes a good target on the field!" storeName="Passion in Life" storeUrl="http://www.cafepress.com/passionforlife" parentSectionName="Paintball for Life" parentSectionUrl="http://www.cafepress.com/passionforlife/1452629">  
      </product>
      

      Meinen php code hab ich jetzt nochmals vereinfacht.

        
      <?php  
      $xml_file = simplexml_load_file("designtest.xml");  
        
      foreach($xml_file->product as $row) {  
      ?>  
        
      <a href="<?php print $row->thumbnailUrl;?>">click</a>  
        
      <?php  
      }  
        
      ?>  
      
      

      was ich erhalte sind folgende Fehlermeldungen:

      [code ]
      Warning: simplexml_load_file() [function.simplexml-load-file]: designtest.xml:2: parser error : EntityRef: expecting ';' in /home/www/cwcity/hosting/t/s/tshirt4you/htdocs/test/cpxml.php on line 2

      Warning: simplexml_load_file() [function.simplexml-load-file]: <product thumbnailUrl="http://prodtn.cafepress.com/image.aspx?p=146914851&i=1260 in /home/www/cwcity/hosting/t/s/tshirt4you/htdocs/test/cpxml.php on line 2

      Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in /home/www/cwcity/hosting/t/s/tshirt4you/htdocs/test/cpxml.php on line 2

      Warning: simplexml_load_file() [function.simplexml-load-file]: designtest.xml:2: parser error : EntityRef: expecting ';' in /home/www/cwcity/hosting/t/s/tshirt4you/htdocs/test/cpxml.php on line 2

      Warning: simplexml_load_file() [function.simplexml-load-file]: ct thumbnailUrl="http://prodtn.cafepress.com/image.aspx?p=146914851&i=12608948&v in /home/www/cwcity/hosting/t/s/tshirt4you/htdocs/test/cpxml.php on line 2

      Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in /home/www/cwcity/hosting/t/s/tshirt4you/htdocs/test/cpxml.php on line 2

      Warning: simplexml_load_file() [function.simplexml-load-file]: designtest.xml:2: parser error : Extra content at the end of the document in /home/www/cwcity/hosting/t/s/tshirt4you/htdocs/test/cpxml.php on line 2

      Warning: simplexml_load_file() [function.simplexml-load-file]: <product thumbnailUrl="http://prodtn.cafepress.com/image.aspx?p=146914851&i=1260 in /home/www/cwcity/hosting/t/s/tshirt4you/htdocs/test/cpxml.php on line 2

      Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in /home/www/cwcity/hosting/t/s/tshirt4you/htdocs/test/cpxml.php on line 2

      Warning: Invalid argument supplied for foreach() in /home/www/cwcity/hosting/t/s/tshirt4you/htdocs/test/cpxml.php on line 4
      [/code]

      Wenn ich im xml file nur die attribute item, price und caption stehen lasse und die anderen raus nehme erhalte ich keine fehlermeldung, aber auch keine Anzeige. Ich erhalte einfach nichts. Auch wenn ich speziell die attribute anfordere mit $row->item zum Beispiel.

      So ich hoffe jetzt sind alle details vorhanden, damit mir jemand helfen kann.

      vielen dank schonmal für die Mühe

      J32

      1. Also die Fehlermeldungen erscheinen wohl wegen dem Attribut thumbnailUrl bzw. wegen dessen Wert. Wenn ich das Attribute weglasse, bekomme ich auch genannte Fehlermeldungen nicht mehr.

        Nun ist mein einzige Problem wie ich jetzt die Attribute von product auslesen kann.Wäre das xml file so aufgebaut

          
        <product>  
           <item>wert</item>  
        </product>  
        
        

        würde meine for each schleife funktionieren. Aber wie lese ich item denn nun in dieser form aus?

          
        <product item="wert"></product>  
        
        

        Hier nochmal mein php code

          
        <?php  
        $xml_file = simplexml_load_file("designtest.xml");  
        foreach($xml_file->product as $row) {  
        ?>  
        <a href="<?php print $row->item;?>">click</a>  
        <?php  
        }  
        ?>  
        
        
        1. Hi,

          Aber wie lese ich item denn nun in dieser form aus?

          <product item="wert"></product>

            
          <http://www.php.net/manual/en/function.simplexml-element-attributes.php>  
            
          MfG ChrisB  
            
          
          -- 
          „This is the author's opinion, not necessarily that of Starbucks.“