解析xpath表达式
parsing xpath expressions
我想解析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
相关文章:
- (C++)分析树以计算返回错误值的简单算术表达式
- 在VS2010-VS2015下编译时,如何使用decltype作为较大类型表达式的LHS
- 提升精神:解析布尔表达式并简化为规范范式
- 不能在初始值设定项列表中将非常量表达式从类型 'int' 缩小到'unsigned long long'
- 使用正则表达式regex_search在字符串中查找字符串
- 如何确认我的constexpr表达式实际上已经在编译时执行
- 概念中的cv限定符需要表达式参数列表
- 为什么constexpr的性能比正常表达式差
- 对于结构,表达式必须是可修改的ivalue
- 当一个值是非常量但用常量表达式初始化时使用constexpr
- 将fold表达式与std::一起用于两个元组
- 断言中的Fold表达式在某些计算机上编译,但在其他计算机上不编译
- 标记 '","' 之前的预期主表达式
- gcc和clang在表达式是否为常量求值的问题上存在分歧
- 如何计算具有指定类型的表达式的相对精度和绝对精度
- 带有用户定义类的c++折叠表达式
- 即使使用调试编译标志,表达式也是"optimized out"
- holeMenuProgram.cpp:38:1 错误:'}'令牌之前的预期主表达式
- 无法使用 <script> XPath 表达式通过 libxml++ 获取 XHTML 内容
- 解析xpath表达式