Ich erhalte XML aus einer Datei wie unten beschrieben. Wenn der XML-Code jedoch an der Stelle ".$image["url"]."
tiefer wird, versuche ich eines der Bilder wiederherzustellen, aber es funktioniert nicht. Ich würde auch die Bilder suchen müssen, da es mehrere Variablen durch die Variable SIZE im XML gibt (XML unten).PHP return Verschachtelte XML
Wie definieren Sie dies, nachdem ich den $ xml-> xpath bereits auf einen höheren Container definiert habe?
$searchurl = "movies.xml";
$xml = simplexml_load_file($searchurl);
$i = 0;
foreach($xml->xpath('/movies/movie') as $movie){
$image = $xml->xpath('/movies/movie/images/image');
echo "<table id=\"ctable\">"
."<thead><tr><th>"
."<th width=\"100%\"><a href=\"JavaScript:void(0);\" onclick=\"showHide('movie".$movie->id."','span".$movie->id."')\">"
."<span id=\"span".$movie->id."\"><img src=\"images\icon_collapse.gif\" class=\"expand\" alt=\"Expand\"></span>"
."<span>".$movie->name."</span></a></th>"
."<th><span></span></th>"
."</th></tr></thead>";
echo "<table><tfoot id=\"movie".$movie->id."\">"
."<tr><td rowspan=\"6\"><a class=\"thumbnail\" href=\"#thumb\"><img src=\"".$image["url"]."\" height=\"150px\" width=\"150px\"><span><img src=\"".$image["url"]."\"/><br/>".$movie->name."</span></a></td><td rowspan=\"6\"><img class=\"line\" width=\"2\" height=\"100%\"></td><td class=\"jralign\">Movie ID:</td><td>".$movie->id."</td></tr>"
."<tr><td class=\"jralign\">Movie Link:</td><td><a href=\"".$movie->url."\">".$movie->url."</a></td></tr>"
."<tr><td class=\"jralign\">Released:</td><td>".$movie->released."</td></tr>"
."<tr><td class=\"jralign\">Classification:</td><td>".$movie->certification."</td></tr>"
."<tr><td class=\"jralign\">Adult:</td><td>".$movie->adult."</td></tr>"
."<tr><td class=\"jralign\" valign=\"top\">Overview:</td><td>".$movie->overview."</td></tr>"
."</tfoot></table>"
."</table><br/>";
$i++;
}
XML Es wird durchsucht.
<?xml version="1.0" encoding="UTF-8"?>
<movies>
<movie>
<score></score>
<popularity>3</popularity>
<translated></translated>
<adult>false</adult>
<language>en</language>
<original_name>Transformers</original_name>
<name>Transformers</name>
<alternative_name>The Transformers</alternative_name>
<type>movie</type>
<id>1858</id>
<imdb_id>tt0418279</imdb_id>
<url>http://www.themoviedb.org/movie/1858</url>
<votes>61</votes>
<rating>7.4</rating>
<certification>PG-13</certification>
<overview>Young teenager Sam Witwicky becomes involved in the ancient struggle between two extraterrestrial factions of transforming robots, the heroic Autobots and the evil Decepticons. Sam holds the clue to unimaginable power and the Decepticons will stop at nothing to retrieve it.</overview>
<released>2007-07-04</released>
<images>
<image type="poster" url="transformers-original.jpg" size="original" width="1000" height="1500" id="4c9ea5cf5e73d67049000233"/>
<image type="poster" url="transformers-mid.jpg" size="mid" width="500" height="750" id="4c9ea5cf5e73d67049000233"/>
<image type="poster" url="transformers-cover.jpg" size="cover" width="185" height="278" id="4c9ea5cf5e73d67049000233"/>
<image type="poster" url="transformers-thumb.jpg" size="thumb" width="92" height="138" id="4c9ea5cf5e73d67049000233"/>
</images>
<version>141</version>
<last_modified_at>2011-01-04 16:33:25</last_modified_at>
</movie>
</movies>
Aktualisierte Funktion: Keine Bilder anzeigen.
$searchurl = "movies.xml";
$xml = simplexml_load_file($searchurl);
foreach($xml->xpath('/movies/movie') as $movie){
$images = $movie->xpath('/images/image');
$image_url = '';
foreach($images as $image) {
$attributes = $image->attributes();
if ($attributes['size'] == 'thumb') {
$image_url = $attributes['url'];
break;
}
}
echo "<table id=\"ctable\">"
."<thead><tr><th>"
."<th width=\"100%\"><a href=\"JavaScript:void(0);\" onclick=\"showHide('movie".$movie->id."','span".$movie->id."')\">"
."<span id=\"span".$movie->id."\"><img src=\"images\icon_collapse.gif\" class=\"expand\" alt=\"Expand\"></span>"
."<span>".$movie->name."</span></a></th>"
."<th><span>".$this->isWatching($movie->id, $uid, $movie->name, 'movie')."</span></th>"
."</th></tr></thead>";
echo "<table><tfoot id=\"movie".$movie->id."\">"
."<tr><td rowspan=\"6\"><a class=\"thumbnail\" href=\"#thumb\"><img src=\"".$image_url."\" height=\"150px\" width=\"150px\"><span><img src=\"".$image_url."\"/><br/>".$movie->name."</span></a></td><td rowspan=\"6\"><img class=\"line\" width=\"2\" height=\"100%\"></td><td class=\"jralign\">Movie ID:</td><td>".$movie->id."</td></tr>"
."<tr><td class=\"jralign\">Movie Link:</td><td><a href=\"".$movie->url."\">".$movie->url."</a></td></tr>"
."<tr><td class=\"jralign\">Released:</td><td>".$movie->released."</td></tr>"
."<tr><td class=\"jralign\">Classification:</td><td>".$movie->certification."</td></tr>"
."<tr><td class=\"jralign\">Adult:</td><td>".$movie->adult."</td></tr>"
."<tr><td class=\"jralign\" valign=\"top\">Overview:</td><td>".$movie->overview."</td></tr>"
."</tfoot></table>"
."</table><br/>";
$i++;
}
danke dqhendricks, das funktioniert und ich habe das unter die erste "foreach" -Schleife gesetzt und es gibt jetzt Bilder zurück! (Ich kann nicht glauben, dass ich nicht daran gedacht habe, eine weitere Schleife in der Schleife laufen zu lassen). Wenn jedoch mehrere Filme im XML zurückgegeben werden, hat jeder Film das gleiche Bild wie der erste ... irgendwelche Ideen? – medoix
oh ja. benutze einfach $ images = $ movie-> xpath ('/ images/image'); stattdessen – dqhendricks
und jetzt nichts, ich habe Post mit Funktion aktualisiert, wie es jetzt ist. – medoix