SimpleXML addChild() Problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • SimpleXML addChild() Problem

    Hallo,

    ich habe ein kleines Problem. Ich möchte einen Bestand abfragen und muss dafür folgende Struktur übermitteln:

    Code:
    <Products>
      <Product>
        <ProductID>xxx</ProductID>
      </Product>
      <Product>
        <ProductID>xxx</ProductID>
      </Product>
    </Products>
    Mein logisches Verständniss

    PHP-Code:
     $xml = new SimpleXMLElement("<?xml version=\"1.0\" encoding=\"utf-8\"?><Request></Request>");
       $array = array("xxx","xxx");
       $xml->AddChild("Products");
        for($i=0;$i<2;$i++){
          $xml->Products->AddChild("Product");
          $xml->Products->Product->AddChild("ProductID",$array[$i]);
        }
        
        echo $xml->asXml();
    mein XML ->

    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <Request>
     <Products>
      <Product>
        <ProductID>6252881</ProductID>
        <ProductID>6252881</ProductID>
      </Product>
      <Product/>
     </Products>
    </Request>
    Irgendwie stehe ich gerade auf meinem Hirn oder so aber mir will nicht einfallen wo ich den Denkfehler drin habe.


    [COLOR="Red"]*join*[/COLOR]


    PHP-Code:
    $xml->Products->AddChild("Product")->AddChild("ProductID",$array[$i]); 
    Funktioniert!
    Zuletzt geändert von AmicaNoctis; 12.02.2010, 09:21. Grund: Doppelpost

  • #2
    Zitat von Skrok Beitrag anzeigen
    PHP-Code:
        $xml->Products->AddChild("Product");
        
    $xml->Products->Product->AddChild("ProductID",$array[$i]); 
    Der Fehler liegt in der zweiten Zeile. Da Product eine Sammlung ist, hättest du einen Index verwenden müssen
    Code:
    ...Products->Product[COLOR="Red"][[I]n[/I]][/COLOR]->AddChild...
    . Ohne Index wird im Zweifelsfall immer der erste gefundene Knoten dieser Collection verwendet und darum wurde das Kind auch dort eingefügt.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Danke für die Info. Werde ich in Zukunft beachten!

      Kommentar

      Lädt...
      X