gpt4 book ai didi

xml - 在 ruby​​ 中解析带有 <% %> 标签的 xml 文档

转载 作者:太空宇宙 更新时间:2023-11-03 18:02:27 25 4
gpt4 key购买 nike

我正在寻找一种方法来解析 ruby​​ 中的 xml/html 文档,其中包含 ERB 样式标签 <% %>里面有 ruby 代码。 REXML,内置的 XML 解析器不允许我这样做。

我知道我可以使用像 hpricot 这样的第三方库,但我想避免任何外部依赖。

有什么方法可以让 REXML 对标签不那么严格吗?或者让它识别这个标签?还有其他解决方案吗?

最佳答案

好吧,如果您想要实际的 Ruby 代码本身,那么您的问题不在于解析器,而在于您的 XML 格式不正确。

我仍然假设您的 XML 看起来像这样:

<parent>
<node>
<% some code here! %>
</node>
</parent>

如果情况确实如此,node 节点(呵呵)的内容实际上应该是一个CDATA 部分。所以它应该是这样的:

<node><![CDATA[
<% some code here! %>
]]></node>

如果这样做,REXML 将能够正确解析 XML 文件,并返回 node 的内容,这将包含 erb 标签。

如果您无法控制 XML 的生成,作为权宜之计,您可以(假设任何包含 ERB 的给定节点 包含 ERB)做一个文件广泛搜索和替换开始和结束代码标签,并适本地附加/预先添加 CDATA 标记。您可以使用您选择的语言轻松地自动执行此操作,SO 上有很多示例。

关于xml - 在 ruby​​ 中解析带有 <% %> 标签的 xml 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1077844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com