我正在编写一个rake任务,将HTML字符串更改为JSON,为此我使用Nokogiri来解析HTML字符串并构建JSON,一切都很顺利,直到我注意到如果我有一个像这样的内部文本
< 109
或
> 109
则nokogiri返回**“109”,而不是"〉109”或”〈109”**
如果我有一个字符串
str = <td>< 109</td>
那么
result = Nokogiri::XML(str)
会回来
#(Document:0x115f8 {
name = "document",
children = [ #(Element:0x1160c { name = "td", children = [ #(Text " 109")] })]
})
以及
result.children.children.to_s
将返回**”109”,但我需要"〈109”**
我怎样才能得到理想的结果?
我希望得到**"〈109”而不是仅”109”**
2条答案
按热度按时间k4emjkb11#
您可以将
Nokogiri::XML
替换为Nokogiri::HTML
,这是一个更宽松的语法错误:uqjltbpv2#
这是一个损坏的HTML,如果这是你唯一想解决的问题,那么你可以在解析它之前修复它。你可以用
<
替换所有的<
。如果还有
>
字符