fritz85: Anzahl Elemente in XML File

Hallo...

Ich möchte nun die Anzahl Elemente die in meinem XML File sind.
Ich bekomme immer die Zahl: 0.
was mach ich falsch?

PHP File:

  
$xmlFile = 'datei.xml';  
$XMLcontent = @simplexml_load_file($xmlFile, NULL, TRUE);  
$num = count($XMLcontent->Data);  

XML File:

  
<Data>  
  <Inserat id="100">  
    <Id>100</Id>  
    <Title>Title1</Title>  
    <Text>Text1<Text>  
  </Inserat>  
  <Inserat id="101">  
    <Id>101</Id>  
    <Title>Title2</Title>  
    <Text>Text2<Text>  
  </Inserat>  
</Data>  

Gruss fritz85

  1. Hello,

    $num = count($XMLcontent->Data);

    soweit ich das sehe hätte dein PHP dir hier bei entsprechender Einstellung eine Warning ausgeben sollen - Data ist als Wurzelelement des XML-Dokuments NICHT Teil der Ergebnisstruktur.

    MfG
    Rouven

    --
    -------------------
    sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
    Friendships are like back yard gardens. We always mean to tend to them, we just seem to put to put them off until next week.  --  Christian Clemenson as Jerry Espenson in Boston Legal: "Patriot Acts"
    1. Hi Rouven,

      soweit ich das sehe hätte dein PHP dir hier bei entsprechender Einstellung eine Warning ausgeben sollen - Data ist als Wurzelelement des XML-Dokuments NICHT Teil der Ergebnisstruktur.

      Ich hab nun den error_reporting ausgegeben jedoch bekomme ich keine Fehlermeldung.
      Ich versteh das echt nicht.

      1. Hello,

        Ich hab nun den error_reporting ausgegeben jedoch bekomme ich keine Fehlermeldung.

        welchen Level hast du gewählt, E_ALL?

        Ich versteh das echt nicht.

        offenbar - "Data" wirst du nicht zählen können, es ist schlichtweg im Ergebnis nicht berücksichtigt. Nimm einen Unterknoten.

        MfG
        Rouven

        --
        -------------------
        sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
        Wenn du die Nadel im Heuhaufen nicht findest, zünde den Heuhaufen an.
        1. Hi Rouven

          welchen Level hast du gewählt, E_ALL?

          jap habe E_ALL gewählt und erhalte keine Fehlermeldung.

          offenbar - "Data" wirst du nicht zählen können, es ist schlichtweg im Ergebnis nicht berücksichtigt. Nimm einen Unterknoten.

          Das komische ist mein zweites XML funktioniert:

          <xmlphp>  
            <xmlphp id="100">  
             <id>100</id>  
             <titel>Titel1</titel>  
             <text>Text1</text>  
             <name>Name1</name>  
             <bild>123.jpg</bild>  
            </xmlphp>  
            <xmlphp id="101">  
             <id>101</id>  
             <titel>Titel2</titel>  
             <text>Text2</text>  
             <name>Name3</name>  
             <bild>123.jpg</bild>  
            </xmlphp>  
          </xmlphp>
          

          Das funktioniert einwandfrei

          1. Hello,

            <xmlphp>

            <xmlphp id="100">
               <id>100</id>
               <titel>Titel1</titel>
               <text>Text1</text>
               <name>Name1</name>
               <bild>123.jpg</bild>
              </xmlphp>
              <xmlphp id="101">
               <id>101</id>
               <titel>Titel2</titel>
               <text>Text2</text>
               <name>Name3</name>
               <bild>123.jpg</bild>
              </xmlphp>
            </xmlphp>

            autsch, süße XML-Struktur, ein Element, das sich selbst als Kind hat... Das war genau das, was ich meine: das Wurzelelement taucht NICHT in der Struktur auf, seine Kinder hingegen schon. In deinem ersten Beispiel:  
            Data              NEIN  
              +- Inserat      JA  
              
            hier:  
            xmlphp            NEIN  
              +- xmlphp       JA  
              
            Es sieht nur so aus, als gäbe es zwischen Beispiel 1 und 2 einen Unterschied...  
              
              
            MfG  
            Rouven  
            
            -- 
            \-------------------  
            sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& ([SelfCode](http://selfspezial.atomic-eggs.com/scode/selfcode.php?encodieren))  
              
            Buy when there's blood running in the street and sell when everyone is pounding at your door, clawing to own your equities  --  Wisdom on Wallstreet
            
            1. Hello,

              autsch, süße XML-Struktur, ein Element, das sich selbst als Kind hat... Das war genau das, was ich meine: das Wurzelelement taucht NICHT in der Struktur auf, seine Kinder hingegen schon. In deinem ersten Beispiel:
              Data              NEIN
                +- Inserat      JA

              hier:
              xmlphp            NEIN
                +- xmlphp       JA

              Das heisst ? Wie kann ich die nun zählen?
              bei "xmlphp" funktionierts aber bei Data nicht

              müsste es so sein:

              <Data>
                <Inserat>
                  <Inserat id="100">
              ....
                  </Inserat>
                </Inserat>
              </Data>

              1. Hello,

                Das heisst ? Wie kann ich die nun zählen?

                bitte beschäftige dich nochmal mit den Grundlagen von XML. Eine XML-Datei hat genau ein Wurzelelement. Es macht keinen Sinn, das zählen zu wollen. Die einzig sinnvolle Anzahl kann hier "1" sein. Zählen kannst du erst die Anzahl der Kinder, die dieses Element hat.
                Wenn du wissen willst, wie viele Inserate in deiner Datei auftauchen, dann zähle nicht Data sondern Inserat!

                <BookStore>
                  <Book>
                     ...
                  </Book>
                  <Book>
                     ...
                  </Book>
                </BookStore>

                Wenn du wissen willst wie viele Bücher im Buchladen angeboten werden, dann zähle die Bücher, nicht die Buchläden!

                Klar?

                MfG
                Rouven

                --
                -------------------
                sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
                Let Bygones Be Bygones  --  Robert Pitscottie: "Chronicles of Scotland"
                1. Hello,

                  bitte beschäftige dich nochmal mit den Grundlagen von XML. Eine XML-Datei hat genau ein Wurzelelement.

                  Hier nochmal der Link zur XML-Spezifikation - bitte beachte insbesondere den Hinweis 2.

                  MfG
                  Rouven

                  --
                  -------------------
                  sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
                  Wenn du die Nadel im Heuhaufen nicht findest, zünde den Heuhaufen an.