Я написал парсер XPath и реализацию IXPathNavigable (раньше я работал разработчиком для XMLPrime ). Ни то, ни другое легко; и я подозреваю, что IXPathNavigable не будет дешевым выигрышем, как вы надеетесь, поскольку во взаимодействиях между различными методами существует довольно много тонкости - я подозреваю, что полноценный парсер XPath будет проще (и более надежным). *
Чтобы ответить на ваш вопрос, хотя:
var results xpathNavigable.CreateNavigator().Evaluate("/my/xpath[expression]").
Возможно, вам потребуется перечислить результаты, чтобы обеспечить навигацию по узлу.
Если вы всегда возвращали true, то все, что вы знали бы о следующем XPath, это то, что он ищет запретные элементы foo: foo[not(bar)]/other/elements
Если вы всегда возвращаете фиксированное количество узлов, вы никогда не узнаете о большинстве этих XPath a[100]/b/c/
По сути, это не сработает.