我试图以 Hpricot/Nokogiri 类型的方式解析而不是评估 rails ERB 文件。我试图解析的文件包含与使用 ERB(标准 Rails 视图文件)生成的动态内容混合的 HTML 片段ERB 符号、<%、<%= 等,就好像它们是 html/xml 标签一样。
理想情况下,我会得到一个类似于 DOM 的结构,其中 <%, <%= 等符号将作为它们自己的节点类型包含在内。
我知道可以使用正则表达式将某些东西组合在一起,但我正在寻找更可靠的东西,因为我正在开发一个工具,我需要在一个非常大的视图代码库上运行,其中 html 内容和 erb 内容是重要的。
例如,内容如下:
等等等等等等 <div>我的好文字 <%= my_dynamic_expression %></div>
将返回一个树结构,如:
根
- text_node(等等等等)
- 元素(div)
- text_node(我的好文字)
- erb_node (<%=)