我有一个包含无效HTML和XML的文档。我需要以这样一种方式对其进行解析:每当遇到任何无效的HTML或XML时,都应该修复它而不是将其视为普通字符串。直到现在我已经尝试过这种技术
Nokogiri::HTML(document)
Nokogiri::XML(document)
两者都没有合作。
我也提到这个link,但这对我没什么帮助。此外,我认为黑客喜欢用正则表达式替换无效的HTML和XML,但我的数据太大,所以无法应用该黑客
我正在调用Nokogiri :: HTML(文档),所以它很好地处理html。但问题是它正在跳过我不想要的Xml标签。我需要在浏览器上打印这些标签
某些标签,例如
</SESSION_CONFIG VERSION=“bgh:3”
<METHODS BASEURL=http://abc.hgd.com /servlet/IAMSERVER/>
<ADD_USER URL=“addUser/>
虽然我知道有些标签不合法,但我仍然需要在浏览器上打印
答案 0 :(得分:0)
您需要配置norecover
,以便Nokogiri不会尝试解决问题:
badly_formed = <<-EOXML
</SESSION_CONFIG VERSION=“bgh:3”
<METHODS BASEURL=http://abc.hgd.com /servlet/IAMSERVER/>
<ADD_USER URL=“addUser/>
EOXML
bad_doc = Nokogiri::HTML(badly_formed) { |config| config.norecover }
puts bad_doc
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body><p>VERSION=“bgh:3”
<methods baseurl="http://abc.hgd.com"></methods>
<add_user url="“addUser/">
</add_user></p></body></html>