Wie in einer Schleife und die Anzeige (n) unter Verwendung von Beschickungen SimpleXML und position ()

StackOverflow https://stackoverflow.com/questions/2146182

Frage

Ich bin mit SimpleXML und ich möchte Schleife obwohl das Futter nur 5 zeigt Anzeige der Position () -Methode, haben aber keine Freude daran an die Arbeit

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>";
}

Alle Vorschläge, wie ich diese Arbeit bekommen

Dies ist die XML-Daten Ich arbeite mit

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

Keine korrekte Lösung

Andere Tipps

Das fühlt sich an wie ein Repost, aber trotzdem ...

NiseNise will Knoten sortieren dann die oben halten 5. Das Problem ist, dass diese XPath-Ausdruck wählt die ersten 5 Knoten in dem Dokument, dann ist die Methode, sie sortiert. Was Sie tun müssen, ist eine Art alle die Knoten dann verarbeiten nur die ersten 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...
}

ich habe vergessen zu erwähnen, sortedXPath() ist nicht Teil des SimpleXML, es ist Teil einer Bibliothek erstreckt SimpleXML , daher das erneute Tagging.

Haben Sie darüber nachgedacht, dass Ihre Schleife bei item[0] beginnen? So $i > 5 Wille Ausgang würde die ersten 6 Knoten, da die Zählung am Punkt beginnen 0. Einfach zu $i > 4 ändern und das sollte das Problem beheben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top