繁体   English   中英

修复无效的HTML和XML

[英]Repair Invalid HTML and XML

我有一个文档,其中包含无效的HTML和XML。 我需要以某种方式解析它,以便每当遇到无效的HTML或XML时都应该对其进行修复,而不是将其视为普通字符串。 直到现在我已经尝试过这种技术

Nokogiri::HTML(document)
Nokogiri::XML(document)

两者不一起工作。

我也引用了此链接,但并没有太大帮助。 此外,我还想过使用regex替换无效的HTML和XML的黑客,但我的数据太大,因此无法应用该黑客

我打电话给Nokogiri :: HTML(document),所以它很好地处理了html。 但是问题是它跳过了我不想要的Xml标签。 我需要这些标签才能在浏览器上打印

一些标签,例如

</SESSION_CONFIG VERSION=“bgh:3”
<METHODS BASEURL=http://abc.hgd.com /servlet/IAMSERVER/>
<ADD_USER URL=“addUser/>

虽然我知道某些标签不合法,但仍需要在浏览器上打印

您需要配置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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM