Comment boucle et d'affichage (n) alimente en utilisant simpleXML et de la position ()
Question
J'utilise simpleXML et je veux que l'alimentation en boucle pour afficher uniquement 5 montre en utilisant la méthode de la position (), mais ont pas de joie dans la faire fonctionner
foreach($xml->sortedXPath('TV[position() < 5 and ProgrammeName="MTV"]', 'TransmissionDate', SORT_DESC) as $i => $item)
{
print "<a href='?v=".$item->ID."&a=false' class='link'>\n";
print "\t<span class=\"text\">" .trunc($item->ShortSynopsis,25, " "). "</span>\n";
print "\t</a>";
}
des suggestions sur la façon dont je peux obtenir ce travail
ce sont les données XML Je travaille avec
Pas de solution correcte
Autres conseils
Cela se sent comme un rediffuser, mais quand même ...
NiseNise veut trier les nœuds puis garder le top 5. Le problème est que cette expression XPath sélectionne les 5 premiers noeuds dans le document, la méthode les trie. Ce que vous devez faire est une sorte tous les nœuds alors que le premier processus 5.
foreach($xml->sortedXPath('TV[ProgrammeName="MTV"]', 'TransmissionDate', SORT_DESC) as $i => $item)
{
if ($i > 5)
{
break;
}
print "<a href='?v=".$item->ID."&a=false' class='link'>\n";
// etc...
}
J'ai oublié de mentionner, sortedXPath()
ne fait pas partie de SimpleXML, il fait partie d'un extension SimpleXML , d'où le rebouclage,.
Avez-vous pensé que votre boucle commencera à item[0]
? Alors $i > 5
Affichera les 6 premiers noeuds parce que le nombre commencerait à point 0. Il suffit de changer à $i > 4
et qui devrait résoudre votre problème.