Cómo bucle y display (n) feeds utilizando simplexml y la posición ()
Pregunta
Estoy utilizando simplexml y quiero bucle pesar de que la alimentación para mostrar solamente 5 muestra usando el método de la posición (), pero no tienen la alegría de conseguir que funcione
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>";
}
alguna sugerencia sobre cómo puedo conseguir este trabajo
estos son los datos XML que trabajo
No hay solución correcta
Otros consejos
Esto se siente como un repost, pero de todos modos ...
NiseNise quiere ordenar los nodos A continuación, mantener la parte superior 5. El problema es que esta expresión XPath selecciona los 5 primeros nodos en el documento, entonces el método de los ordena. Lo que hay que hacer es una especie de todos los nodos entonces sólo procesar los primeros 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...
}
Me olvidé de mencionar, sortedXPath()
no es parte de SimpleXML, es parte de un extendiéndose SimpleXML , de ahí el reetiquetado.
¿Ha considerado que su loop comenzará a las item[0]
? Así salida $i > 5
voluntad de los primeros 6 nodos debido a que el recuento se iniciará a punto 0. Se debe cambiar simplemente a $i > 4
y que debe arreglar el problema.