Когда я вызываю XPathNavigator.Select ("self :: node() /../. [@ numberOfLocationsAdded! = '0'] ") Я получаю исключение из« имеет недопустимый токен »XPathNavigator.Select ("self :: node() /../ .. [@ numberOfLocationsAdded! = '0']")
Это потому, что XPathNavigator не может пройти выше корня, на котором он находится? Если да, то какие-либо предложения о том, как лучше всего справиться с этим делом?
Мы вызываем select и получаем XPathNodeIterator, когда пользователь устанавливает узел, который они хотят перебрать.
Затем для каждой итерации мы вызываем XPathNodeIterator.Current, который дает нам XPathNavigator для узла, на котором мы находимся.
А потом XPath выбирает против узла мы на, вызовите XPathNavigator.Select()
Есть ли способ сделать это эффективно? Или если нам нужно поддерживать ../ .. нужно ли нам всегда работать с корневого узла и добавлять XPath узлов, которые они хотят перебрать?
спасибо - Дэйв
Я думаю, что это ./../parent::node()[@numberOfLocationsAdded!='0 '], но да, это - не может .. [condition] –
@DavidThielen: Да - я обновил это ответьте с более коротким эквивалентным выражением. –