簡體   English   中英

Nokogiri 在解析 html 時引發錯誤

[英]Nokogiri raises error when parsing html with <meta charset='UTF-8>

當我將<meta charset='UTF-8>到 .html 文件時,Nokogiri::HTML 會引發錯誤。

該文件如下:

<!DOCTYPE html> 
<html>
  <head>
    <meta charset="UTF-8">
    <title>My super content</title>
    <link rel="stylesheet" type="text/css" href="./static.css">
  </head>

  <body>
    <footer>
      <p></p>
    </footer>
    <script type="text/javascript" src="./static.js"></script>
  </body>

</html>

當我解析它時,我得到:

$ doc = Nokogiri::HTML(open('myfile.html'))
$ doc.errors
> [#<Nokogiri::XML::SyntaxError: 10:12: ERROR: Tag footer invalid>]

刪除<meta charset="UTF-8">解決了這個問題。

為什么? 我怎樣才能讓它與它一起工作?

Nokogiri 主要是一個 XML 解析器,因此期望大多數有效的 XML。 盡管 HTML 看起來很像 XML,尤其是在 HTML 5 中,但是有不同的規則,例如關閉標記和算法來檢測諸如編碼之類的東西,這使得 HTML 5 與 XML 和 XML 解析器不兼容。

在與您的問題相關的問題中,Mike Dalessio(nokogiri 維護者之一)的回應是:

Nokogiri 不支持 HTML5。 您可能需要查看Nokogumbo項目,該項目旨在實現 HTML5 與Gumbo解析器的兼容性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM