Получите 18 первых результатов в объекте SimpleXMLElement - PullRequest
0 голосов
/ 11 января 2012

У меня есть этот xml-ответ, на который я сделаю

foreach($response->entry->item as $data)

, но $ data содержит больше массивов (20), чем мне нужно (18).Поэтому я попытался сделать array_slice, но, как вы знаете, это не сработает.

Какие еще решения я могу попробовать?

1 Ответ

1 голос
/ 11 января 2012

Вы можете попытаться ограничить набор результатов данными, выбранными в xml через xpath.

$string = <<<XML
<?xml version='1.0'?>
    <document>
        <item id="1" />
        <item id="2" />
        <item id="3" />
        <item id="4" />
        <item id="5" />
        <item id="6" />
    </document>
XML;

$xml = simplexml_load_string($string);
var_dump($xml->xpath("//item[@id>2 and @id<5]")) // Prints the two nodes matching the condition from the xpath

Как было предложено в комментариях, вы также можете просто зациклить массив с for вместо foreach и ограничить количество итераций.

...