解析xpath表达式

parsing xpath expressions

本文关键字:表达式 xpath 解析      更新时间:2023-10-16

我想解析XPath表达式我正在寻找C++或Python 中的lexer/parser实现

以下是我设法收集的关于XPath解析器的所有信息:

  • XPath的ANTLR语法1&2(来自解析XPath表达式)
  • Python解析器&来自PDIS的lexer
  • 面向标准解析器生成器的几个python实现

有人知道其他实现吗?在C++中?

PS:我不想评估XPath表达式,而是将它们标记为

基于OP、的评论

我正在研究XPath查询重写和等价

他需要的是一个构建抽象语法树的解析器,以及分析和转换这些树的方法。然后,分析器和"重写"可以通过遍历/修改AST按程序进行;这是传统的方法。

但似乎重点应该放在OP的目标上。为此,他需要分析和改写。但这并不一定要完全以传统的程序方式来完成。相反,如果可以直接使用XPath表示法进行分析/重写,那就太好了。

我建议他看看我们的DMS软件重组工具包,它解析、构建AST,但特别是使用表面语法对AST进行"重写"。然后XPath"重写"可以直接写为XPath表达式上的等价项。这方面的一个激励性例子可以看作是使用DMS重写代数方程。从这个例子中可以明显看出,XPath的语法很容易定义。

Checkout XQillahttp://xqilla.sourceforge.net/HomePage

Xerces有一个分支xalan-c,用于实现这一点:

http://xml.apache.org/xalan-c/overview.html