Я думаю, что SimpleXML в любом случае загружает весь XML, и (если я правильно помню) вы можете использовать узлы SimpleXML, как если бы они были массивами, поэтому вы можете просто использовать функции массива, чтобы получить последний узел. Прошло много времени с тех пор, как я использовал PHP, но вы должны быть в состоянии получить длину, а затем получить элемент длиной 1 ...
Edit:
Конечно, вы также можете использовать XPath, я подумал, что должен упомянуть и это, но я не был уверен, что last()
работает в реализации SimpleXML XPath.
Я не уверен, что быстрее всего, используя индексы массивов или XPath, я бы предположил, что индексы массивов были быстрее, но вы должны попробовать оба в цикле несколько тысяч раз, получая время до и после цикла для проверки.
Но как всегда в CS: то, что вы выбираете, зависит от многих вещей.
Это время критично или используется очень часто: найдите самое быстрое решение.
Если вам понадобятся более сложные запросы и скорость не является проблемой: используйте все, что проще в реализации и дает необходимую мощность (XPath хорош для навигации по сложному дереву, индексация массивов хороша для быстрого произвольного доступа в списке типа данных; XML может использоваться для обоих типов.)