Я пытаюсь создать «AET» (абстрактное дерево выражений) для XPath (поскольку я пишу WYSIWYG XSL-редактор). Я бил головой о стену с помощью XPath BNF в течение последних трех-четырех часов.Parse XPath Expressions
Я подумал о другом решении. Я думал, что могу написать класс, который реализует IXPathNavigable, который возвращает собственный XPathNavigator при вызове CreateNavigator. Этот XPathNavigator всегда будет успешным при любых вызовах методов и будет отслеживать эти вызовы - например. мы перешли к узлу клиентов, а затем к узлу клиента. Затем я мог бы использовать эту информацию (надеюсь) для создания «AET» (так что у нас теперь будут клиенты/клиенты в объектной модели).
Только вопрос: как на земля ли я запускаю IXPathNavigable через XPathExpression?
Я знаю, что это слишком лениво. Но кто-нибудь еще прошел через это усилие и написал парсер выражения XPath? У меня еще нет POC'd моего возможного решения, потому что я не могу проверить его (потому что я не могу запустить XPathExpression против IXPathNavigable), поэтому я даже не знаю, будет ли мое решение работать.
Текст, начинающийся с IXPathNavigable, очень запутан. Не могли бы вы изменить вопрос и объяснить лучше? –