kostenloser Webspace werbefrei: lima-city


SimpleXML Fehler

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    m****r

    Hi,

    ich stehe gerade wirklich auf dem Schlauch und komme nicht weiter, irgendwie scheint sich simpleXML gegen mich verschworen zu haben... Vielleicht kann mir von euch mal jemand erklären warum das nicht geht:

    Ich hab ein SimpleXMLElement, aus dem ich einfach nur die ID Liste raus exportieren möchte. Nichts weiter. Das wars. Eigentlcih ganz einfach - eigentlich! Ich lese mein SimpleXMLElement so ein:

    $this->Results = simplexml_load_file($Query);


    Danach entsteht ungefähr diese Struktur:

    SimpleXMLElement Object
    (
        [Count] => 1908
        [RetMax] => 1908
        [RetStart] => 0
        [QueryKey] => 1
        [WebEnv] => NCID_1_420189972_130.14.22.33_5555_1346403598_85646359
        [IdList] => SimpleXMLElement Object
            (
                [Id] => Array
                    (
                        [0] => 22920665
                        [1] => 22920663
                        [2] => 22920661
                        [3] => 22920660


    Wobei die ID Liste natürlich enorm viel länger ist. Soweit so gut. Mein Versuch, da es ja ein SimpleXMLElement ist einfach es mal über echo zu probieren also echo $xml->IdList; schlug fehl. Müsste aber funktionieren laut http://de2.php.net/manual/de/simplexml.examples-basic.php Beispiel 2 hier.

    Ok, macht nichts - was anderes probiert:

    private function FilterIDs($Node) {
    		foreach($Node->children() as $Name) {
    		     
    		     $this->FilterIDs($Name);
    		     
    		     if($Name->getName() == "IdList") {
                               echo $Name->Id;
    			}
    		}
    	}


    Geht auch nicht. Warum? Keine Ahnung. Manchmal scheint beim Debug Output übrigens die Id Liste ein Array zu seien, während es manchmal eine Aneinanderreihung von SimpleXMLElementen ist, die jeweils nur eine ID enthalten.

    Was soll ich jetzt bitte machen, um an die Werte zu kommen? Danke!
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hallo


    willst Du einfach alle Ids aus der IdList ausgeben ?

    dann einfach so:
    foreach ($Node->IdList->Id as $Name) { 
    
      echo "<br />".$Name."\n"; 
    
    }


    ... manchmal Array und manchmal Aneinanderreihung von SimpleXMLElemente ???
    meinst Du als Array of Objects

    Wenn das Id Array nicht direkt den Wert (als int bzw. string) enthält,
    sondern je Element wieder ein SimpleXMLElement Object ist, dann
    kannst Du das ja auch in der foreach abfangen und umwandeln

    foreach ($Node->IdList->Id as $Name) { 
    
      $inhalt = (is_object($Name) ? get_object_vars($Name) : $Name);
      echo "<br />".$inhalt."\n"; 
    
    }



    vielleicht geht es auch einfach mit (string) vor dem Element
    um ... wenn Object dann Inhalt als String behandeln (umwandeln)

    foreach ($Node->IdList->Id as $Name) { 
    
      $inhalt = (string)$Name;
      echo "<br />".$inhalt."\n"; 
    
    }


    bzw direkt
    echo "<br />".(string)$Name."\n";


    Wenn Du 100% sicher bist, das immer zur ganze Zahlen ankommen,
    dann ginge es auch mit (int) anstatt mit (string) davor ...

    ... einfach mal ausprobieren, habs nicht getestet ... viel Glück ;)

  4. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!