Насколько я понимаю, .NET поддерживает
XPath 1.0, который не гарантирует
порядок узлов
Когда вычисляется выражение XPath 1.0, которое выбирает узлы, выбранные узлы образуют набор узлов . Набор узлов - это набор, и это, помимо прочего, означает, что он неупорядочен .
Для практических целей, однако, существует один основной порядок , выбранный для перечисления узлов набора узлов: порядок документов. На практике все известные мне движки XPath 1.0 (и, конечно, в .NET) возвращают выбранные узлы в порядке документа. В будущем это вряд ли изменится, потому что поставщики пытаются сохранить обратную совместимость.
Поэтому просто попробуйте использовать методы SelectNodes()
или Evaluate()
и убедитесь, что узлы в результатах расположены в порядке документов .
Примечание : Порядок следующего не может быть гарантирован и зависит от реализации:
Атрибуты одного и того же элемента.
Узлы, принадлежащие разным документам (набор узлов, содержащий узлы из разных документов, может быть создан с использованием функции XSLT document()
, так что это, скорее всего, вас не касается).