我想解析XPath表达式 我正在寻找C ++或Python中的词法分析器/解析器实现
以下是我设法收集的有关XPath解析器的所有信息:
有谁知道其他实施?在C ++中?
PS:我不想评估XPath表达式,而是标记它们
答案 0 :(得分:2)
基于OP的评论,
我正在研究XPath查询重写和等价
他需要的是一个构建抽象语法树的解析器,以及分析这些树并对其进行转换的方法。然后可以通过步行/修改AST在程序上完成分析器和“重写”;这是传统的做法。
但似乎重点应该是OP的目标。为此,他需要分析和重写。但这不一定要以传统的程序方式完成。相反,如果可以使用XPath表示法直接完成分析/重写,那将是很好的。
我建议他查看我们的DMS Software Reengineering Toolkit解析,构建AST,但特别是使用表面语法在AST上“重写”。然后XPath“重写”可以直接写为XPath表达式的等价。如何运作的一个激励示例可以被视为Rewriting algebra equations using DMS。从该示例中可以明显看出,XPath的语法很容易定义。
答案 1 :(得分:0)
答案 2 :(得分:0)
Xerces有一个分支xalan-c,用于执行此操作: