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

http://deniselashlley.co.uk/test/data.xml

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top