我有一种情况,在某些实例中,我在数据库列中接收HTML编码信息,在其他一些实例中,我接收常规文本。
我有这样的代码:
my_string = Nokogiri::HTML.parse(my_string).text
如果my_string
是html编码的,则此工作,但如果它是常规文本则不工作。
我是否可以执行以下检查?
如果html_encoded, Nokigiri::HTML。解析else,返回my_string。
我开始觉得Rails处理这个问题很奇怪。下面是我的模型代码:
def show_name
name = Nokogiri::HTML.parse(name).text
name
end
下面是我的视图代码:
<tbody>
<% names.each do |t| %>
<tr class="<%= return_cd_error?(t.show_return_cd) ? 'error' : '' %>">
<td><%= t.name %></td>
</tr>
<% end %>
如果在名称前使用binding.pry
,则在解析前后返回名称"John Doe",这很奇怪:
[2] pry(#<Test::Sess>)> name
=> "Hugh Geissler"
[3] pry(#<Test::Sess>)> name = Nokogiri::HTML.parse(name).text
=> ""
但是,如果我删除Nokogiri解析代码,它显示良好。
没有定义什么是HTML编码,什么不是HTML。在XML中有定义嵌入标记的方法,但在HTML中没有。
相反,您可以嗅探文本并确定是否存在编码前缀,例如"",或者,甚至不关心,直接解码它。
Nokogiri 可以解码编码的HTML,但它不会是我解码它的第一个工具。相反,像CGI::unescapeHTML(str)
这样的东西,从Ruby的CGI标准库可以做到这一点。更多信息请参见"如何在Ruby中编码/解码HTML实体?"
相关内容
- 没有找到相关文章
最新更新
- Go中的Azure JWT验证不起作用
- 加固跨站脚本:DOM - jQuery修复
- 如何在vue3中自定义输入字段中获得默认道具?
- 如何在swiftui中使用NavigationView从外部响应函数导航视图?
- 使用值 _T( " " ) 和 CString 变量
- 有一种方法来检查所需的角色在表单数据?
- 结构JSON到一个' attrs '类与额外的字段使用' cattrs ' ?
- 使用扑动的设备音频管理
- 从字典中提取最小x值键
- Cplex - 第一个要访问的车站必须是不符合下限和上限标准的车站
- HMAIL服务器没有收到来自本地主机的邮件
- 使用来自 ngrx 存储选择器的可观察量的自定义异步验证器不会返回 'null',除非我输入 take(1) 运算符
- 在这种情况下如何更新有状态小部件的状态?
- 不要在 Wordpress 上的 save_post 中自动保存期间运行代码
- 关闭下拉列表时如何从 中删除 .active 类<div>? jquery
- 所选组件不应该显示菜单
- 给定"显示变量,如"%version%;"的输出,我如何确定我应该使用哪种语法?
- 如何处理来自消息体API响应的GZIP字符串?
- OAuth2和PKCE - Code验证器无效
- GCP 的 CloudSQL - 重新创建现有的只读副本
- 当解引用指针OCaml时,匹配总是成功的
- 如何使用cx_Oracle解析oracle过程中的TAB TYPE OUT
- 如何列出numpy array中的最低值
- 我如何在脚本中定义tracery来生成随机句子?
- 如何使用yapf保持参数都在一行?
- 试图在底部填充溢出
- 如何使用Matplotlib在圆中绘制未定义数量的随机点
- 如何在vscode中选择同一个词的所有引用
- 使用Ansible jinja2 list特性返回的结果比使用Ansible hostvars返回的结果更多
- Laravel Eloquent,如何在3个表上访问Eloquent ?
热门标签:
javascript python java c# php android html jquery c++ css ios sql mysql arrays asp.net json python-3.x ruby-on-rails .net sql-server django objective-c excel regex ruby linux ajax iphone xml vba spring asp.net-mvc database wordpress string postgresql wpf windows xcode bash git oracle list vb.net multithreading eclipse algorithm macos powershell visual-studio image forms numpy scala function api selenium