Обычно анализ и компиляция выражения XPath занимает намного больше времени, чем его выполнение, даже на довольно большом документе. Например, в Saxon при выполнении выражения count(//*[contains(., 'e')])
для исходного документа размером 1 МБ компиляция выражения пути занимает 200 мс, а выполнение - около 18 мс.
Если ваш XPath API позволяет вам скомпилировать выражение XPath один раз, а затем выполнить его многократно (или если оно кэширует скомпилированное выражение за кулисами), тогда определенно стоит воспользоваться этой возможностью.
Фактическое выполнение XPath, вероятно, будет, по крайней мере, так же быстро, как ваш рукописный навигационный код, возможно, скорее быстрее. Это подготовка, которая вызывает накладные расходы.