... но, как оказалось, очень быстрая. Настолько, что придется к ней привыкнуть, несмотря на вырвиглазный синтаксис. Берем простой код, где в памяти крутится XML-файл на два с половинкой мегабайта (нужно выбрать одну единственную ноду), оформляем его дважды, используя разные подходы, и обрамляем это дело в командлет measure-command {}, который и покажет разницу. Код вот такой:


Разница - больше, чем сто раз в пользу XPath. 9 мс против 1202 мс. СТО РАЗ, КАРЛ!!!

За подобное увеличение скорости работы я готов простить даже то убожество, в каком приходится записывать регистронезависимый поиск в атрибутах ноды. Да-да, я вот про это самое contains бла-бла-бла. А все потому, что Select-XML регистрозависим целиком и полностью. Как в области структуры XML, которую указываем в XPath (имена нод/атрибутов), так и в области значений атрибутов.

Короче, грядет перепись пары-тройки модулей...