【发布时间】:2011-06-28 21:02:07
【问题描述】:
我想解析 XPath 表达式 我正在寻找 C++ 或 Python 中的词法分析器/解析器实现
这是我设法收集的有关 XPath 解析器的所有信息:
- XPath 1 和 2 的 ANTLR 语法(来自 Parse XPath Expressions)
- 来自PDIS 的 Python 解析器和词法分析器
- 来自Towards a Standard Parser Generator 的几个python 实现
有人知道其他实现吗?在 C++ 中?
PS : 我不想评估 XPath 表达式,而是将它们标记化
【问题讨论】:
-
您想要一种能够对 XPath 表达式进行词法分析/解析的解决方案,还是一种针对特定 XML 文档评估它们的解决方案?
-
@robert :我不想评估 XPath 表达式,只是将它们标记化。所以是的,我想要一个 lexes/parses XPath 表达式的解决方案
-
首先你说“只是标记化”,然后你立即说“lexes/parses”。这些是非常不同的要求。我不清楚您是否清楚地了解自己的要求。您究竟想对 XPath 信息做什么?为什么?
-
@IraBaxter :你是对的,我不太清楚。我不想评估 XML 文档上的 XPath 表达式。我想将 xpath 表达式表示为抽象语法树(就像我用于算术表达式的树表示)以便操作它们。我可以使用 XPath 语法并编写自己的解析器。但在重新发明轮子之前,我只想知道是否有人已经完成了这项工作:) 我正在研究 XPath 查询的重写和等效性。
-
@Patrick:如果你想做“重写”,你需要的不仅仅是标记化。您需要一个完整的解析器来构建 AST。理想情况下,您还可以使用其他机器来帮助您进行重写,否则您将花费大量工作来构建 。
标签: c++ python parsing xpath lexer