Anzahl Elemente in XML File
fritz85
- php
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
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
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.
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
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
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
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 JAhier:
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>
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
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