我正在尝试为XPath创建一个'AET'(抽象表达式树)(因为我正在编写一个WYSIWYG XSL编辑器).在过去的三到四个小时里,我一直用XPath BNF撞墙.
我想到了另一个解决方案.我想我可以编写一个实现IXPathNavigable的类,它在调用CreateNavigator时返回我自己的XPathNavigator.这个XPathNavigator总是会在任何方法调用上成功,并会跟踪这些调用 - 例如我们移动到客户节点,然后移动到客户节点.然后我可以使用这些信息(希望)来创建'AET'(因此我们现在可以在对象模型中拥有客户/客户).
唯一的问题是:如何在地球上我通过XPathExpression运行IXPathNavigable?
我知道这太懒了.但是有没有其他人经历过努力并编写了一个XPath表达式解析器?我还没有POC我可能的解决方案,因为我无法测试它(因为我无法对IXPathNavigable运行XPathExpression),所以我甚至不知道我的解决方案是否能够正常工作.