simpleXML Objekte zählen

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

  • simpleXML Objekte zählen

    Hallo Leute,

    ich habe eine XML Datei mit mehreren "movie" objekten:
    <?xml version='1.0' standalone='yes'?>
    <movies>


    <movie>
    <title>PHP: Behind the Parser</title>
    <characters>
    <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
    </character>
    <character>
    <name>Mr. Coder</name>
    <actor>El ActÓr</actor>
    </character>
    </characters>
    <plot>
    So, this language. It's like, a programming language. Or is it a
    scripting language? All is revealed in this thrilling horror spoof
    of a documentary.
    </plot>
    <rating type="thumbs">7</rating>
    <rating type="stars">5</rating>
    </movie>


    <movie>
    <title>Nur ein Test</title>
    <characters>
    <character>
    <name>Ms. Tester</name>
    <actor>Max Mustermann</actor>
    </character>
    <character>
    <name>Mr. unbekannt</name>
    <actor>xxx</actor>
    </character>
    </characters>
    <plot>
    just a test
    </plot>
    <rating type="thumbs">7</rating>
    <rating type="stars">5</rating>
    </movie>


    </movies>
    In diesem Fall also 2 movie objekte. Ich lade die Datei per simplexml ein. Zähle ich aber per count() das Objekt $xml->movie kriege ich 1 anstatt 2 zurück. Wie kann ich feststellen wieviele "movie" objekte es gibt?

    Ansonsten kann mans ja auch als array ansprechen (mit foreach zum beispiel), also müssen die einträge im array ja irgendwie auch zählbar sein, oder?

    Die freizeilen im XML hab ich der Darstellung halber reingemacht!

  • #2
    var_dump($xml);

    Kommentar


    • #3
      Original geschrieben von onemorenerd
      var_dump($xml);
      Hab ich gemacht - Da bekomme ich nun das raus:
      object(SimpleXMLElement)#1 (1) { ["movie"]=> array(2) { [0]=> object(SimpleXMLElement)#2 (4) { ["title"]=> string(22) "PHP: Behind the Parser" ["characters"]=> object(SimpleXMLElement)#4 (1) { ["character"]=> array(2) { [0]=> object(SimpleXMLElement)#5 (2) { ["name"]=> string(9) "Ms. Coder" ["actor"]=> string(14) "Onlivia Actora" } [1]=> object(SimpleXMLElement)#6 (2) { ["name"]=> string(9) "Mr. Coder" ["actor"]=> string(9) "El ActÓr" } } } ["plot"]=> string(162) " So, this language. It's like, a programming language. Or is it a scripting language? All is revealed in this thrilling horror spoof of a documentary. " ["rating"]=> array(2) { [0]=> string(1) "7" [1]=> string(1) "5" } } [1]=> object(SimpleXMLElement)#3 (4) { ["title"]=> string(22) "PHP: Behind the Parser" ["characters"]=> object(SimpleXMLElement)#7 (1) { ["character"]=> array(2) { [0]=> object(SimpleXMLElement)#8 (2) { ["name"]=> string(9) "Ms. Coder" ["actor"]=> string(14) "Onlivia Actora" } [1]=> object(SimpleXMLElement)#9 (2) { ["name"]=> string(9) "Mr. Coder" ["actor"]=> string(9) "El ActÓr" } } } ["plot"]=> string(162) " So, this language. It's like, a programming language. Or is it a scripting language? All is revealed in this thrilling horror spoof of a documentary. " ["rating"]=> array(2) { [0]=> string(1) "7" [1]=> string(1) "5" } } } }
      Ich möchte gern wissen wie groß der "movie" array ist. Laut var_dump hat er 2 einträge! count() liefert mir aber 1 und nicht 2!

      Außerdem gibt mir:
      PHP-Code:
      if(is_array($xml->movie)) 
      false zurück...
      Zuletzt geändert von CoS; 30.11.2006, 18:08.

      Kommentar


      • #4
        Hi,

        damit sollte es klappen:

        PHP-Code:
        count($xml->children()); 
        (Wenn $xml ein Objekt der simpleXML Klasse ist).

        Kommentar

        Lädt...
        X