使用Nokogiri读取格式错误的XML:URL字段中未转义的&符号

时间:2012-11-28 15:33:48

标签: ruby-on-rails ruby xml nokogiri

我正试图在我的rails项目中使用Nokogiri从第三方读取XML文件。 我解析的其中一个节点包含一个带未转义的&符号的URL(如foo.com/index.html?page=1&query=bar

我知道这被认为是格式错误的XML,Nokogiri只是试图解析它,导致foo.com/index.html?page=1=bar

如何获取完整的网址?我可以调整Nokogiri吗?你会进行搜索和替换 - 预运行或最佳实践吗?

1 个答案:

答案 0 :(得分:2)

使用包含&符号的图像链接解析SVG时遇到同样的问题。

将HTML解析为HTML似乎正确处理链接,转义&。

fixed_svg = Nokogiri::HTML.fragment(raw_svg).to_html
# proceed with XML parsing
svg = Nokogiri::XML(fixed_svg)