Komme an Werte nicht ran
Mike Richter
- xml
Hallo,
nachfolgende XML-Daten sind in "Details" eingefasst:
[Authors] => SimpleXMLElement Object
(
[Author] => Array
(
[0] => Ernst H. Gombrich
[1] => Christoph Waltz
)
)
[ReleaseDate] => September 2006
[BrowseList] => SimpleXMLElement Object
(
[BrowseNode] => Array
(
[0] => SimpleXMLElement Object
(
[BrowseId] => 255955
[BrowseName] => Kategorien - Kindermusik & Hörspiele - Hörspiele - Allgemein
)
[1] => SimpleXMLElement Object
(
[BrowseId] => 280886
[BrowseName] => Kategorien - Kinder- & Jugendbücher - Sachbücher
)
)
)
Die Daten befinden sich alle in $xml und werden soweit auch korrekt ausgegeben (Authors, ReleaseDate) aber warum die einzelnen BrowseId nicht?
foreach ($xml->Details AS $book)
{
if($book->Authors->Author)
{
foreach($book->Authors->Author AS $author)
{echo $author;}
}
echo $book->ReleaseDate;
if($book->BrowseList->BrowserNode) {
foreach($book->BrowseList->BrowserNode->BrowseId AS $nodel)
{
echo $nodel."<br>";
}
}
}
Danke,
Mike
Hallo Mike,
Die Daten befinden sich alle in $xml und werden soweit auch korrekt ausgegeben (Authors, ReleaseDate) aber warum die einzelnen BrowseId nicht?
Weil »BrowseId« nicht mehrfach vorkommt, sondern das Elternelement. Korrekt wäre:
foreach($book->BrowseList->BrowserNode AS $nodel) {
echo $nodel->BrowseId."<br>";
}
Viele Grüße,
Christian
Hallo,
funktioniert leider auch nicht, auch wenn es logisch klingt ;)
Weil »BrowseId« nicht mehrfach vorkommt, sondern das Elternelement. Korrekt wäre:
foreach($book->BrowseList->BrowserNode AS $nodel) {
echo $nodel->BrowseId."<br>";
}
echo $begrüßung;
funktioniert leider auch nicht, auch wenn es logisch klingt ;)
"Funktioniert nicht" ist keine Fehlerbeschreibung, mit der man was anfangen kann. Bitte beobachte und beschreiben genauer.
foreach($book->BrowseList->BrowserNode AS $nodel) {
... und mach Christians Tippfehler da raus.
echo "$verabschiedung $name";
"Funktioniert nicht" ist keine Fehlerbeschreibung, mit der man was anfangen kann. Bitte beobachte und beschreiben genauer.
Liefert einfach keine Ausgabe.
foreach($book->BrowseList->BrowserNode AS $nodel) {
... und mach Christians Tippfehler da raus.
Kann da keinen Tippfehler sehen...
echo $begrüßung;
"Funktioniert nicht" ist keine Fehlerbeschreibung, mit der man was anfangen kann. Bitte beobachte und beschreiben genauer.
Liefert einfach keine Ausgabe.
Wie ist dein error_reporting und display_errors eingestellt?
foreach($book->BrowseList->BrowserNode AS $nodel) {
... und mach Christians Tippfehler da raus.
Kann da keinen Tippfehler sehen...
Browse_r_Node
echo "$verabschiedung $name";
Hallo,
funktioniert leider auch nicht, auch wenn es logisch klingt ;)
Könnte ich mal ein fertiges XML-Fragment sehen und ein kurzes bisschen Beispielcode, der das entsprechende SimpleXML-Element aus dem Fragment erzeugt? Damit man das mit Originaldaten mal live ausprobieren kann?
Viele Grüße,
Christian
Hallo,
also hier mal der komplette Inhalt vom Object:
SimpleXMLElement Object
(
[Details] => Array
(
[0] => SimpleXMLElement Object
(
[Authors] => SimpleXMLElement Object
(
[Author] => Hape Kerkeling
)
[ReleaseDate] => 01. Juli 2006
[BrowseList] => SimpleXMLElement Object
(
[BrowseNode] => Array
(
[0] => SimpleXMLElement Object
(
[BrowseId] => 300667
[BrowseName] => Formate - ...
)
[1] => SimpleXMLElement Object
(
[BrowseId] => 146424011
[BrowseName] => Formate - ...
)
)
)
)
)
)
Abgefragt wird so:
<?
$xml=simplexml_load_string($xmlstring); // $xml = dann obiger Inhalt
foreach ($xml->Details AS $book)
{
if($book->Authors->Author){foreach($book->Authors->Author AS $author){echo utf8_decode($author)." ";}}
echo $book->ReleaseDate;
foreach($book->BrowseList->BrowserNode AS $nodel){ echo $nodel->BrowseId."<br>";}
}
?>
Hallo,
foreach($book->BrowseList->BrowserNode AS $nodel){ echo $nodel->BrowseId."<br>";}
Tja, dedlfix hat Recht, da war wirklich ein Tippfehler meinerseits drin, ich schrieb "BrowserNode" statt "BrowseNode", wie's in Deiner Struktur herauskommt.
Übrigens, für die Zukunft: Mit XML-Fragment meinte ich eigentlich eine Zeichenkette, die die Struktur hervorruft, damit man das ohne Probleme einfach mal bei sich selbst zu Hause ausprobieren kann. Deine print_r-Ausgabe ist nämlich nicht so toll, wenn man's einfach mal selbst in PHP eingeben will. ;-)
Viele Grüße,
Christian