Как я могу использовать XPath для выбора узла без извлечения всех его дочерних узлов? Например, в следующем XML-документе:
<parentnode>
<node1 a="b" b="c">
<child1/>
<child2/>
... many many child nodes
<childN/>
</node1>
<node2/>
</parentnode>
Я бы хотел иметь возможность выбрать элемент 'node1' для проверки его атрибутов, но без выбора дочерних узлов, которые мне не нужно анализировать и которые могут содержать тысячи элементов, что влияет на производительность. запроса (вывод которого используется для построения своего рода дерева DOM с массивами и словарями в сторонней библиотеке).
Обновление: просто для ясности, упомянутая мной сторонняя библиотека на самом деле является просто оболочкой Objective-C вокруг синтаксического анализатора libxml2, который создает дерево DOM из классов Foundation с результатом любого запроса XPath , Сами запросы выполняются над уже проанализированным документом (xmlDocPtr), который повторно используется для всех запросов, поэтому да, как говорят многие ответы, документ уже DOM'-обработан на уровне C, но реализация оболочки Objective-C обеспечивает производительность хит в этом конкретном сценарии. Я мог бы изменить эту библиотеку, чтобы при желании не получать дочерние узлы выбранного узла, но я подумал, что, вероятно, будет простой способ получить только атрибуты узла с помощью запроса.