首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析HTML片段,并列出一些自定义标记

解析HTML片段,并列出一些自定义标记
EN

Stack Overflow用户
提问于 2016-03-29 08:02:26
回答 1查看 557关注 0票数 6

我试图使用Nokogiri解析包含自定义HTML标记的HTML片段。

示例:

代码语言:javascript
复制
string = "<div>hello</div>\n<custom-tag></custom-tag>"

我试图以多种方式加载它,但没有一个是最佳的。

如果我使用Nokogiri::HTML:

代码语言:javascript
复制
doc = Nokogiri::HTML(string)

当我使用to_html时,它会添加一个doctype和一个包装内容的html标记。这是不想要的。

如果我使用Nokogiri::XML:

代码语言:javascript
复制
doc = Nokogiri::XML(string)

我得到了Error at line 2: Extra content at the end of the document,因为在XML中必须有一个根标记来包装所有文档内容。如果我再次尝试保存此内容,则输出为<div>hello</div> (删除第一个之后的每个标记)。

我也试过doc = Nokogiri::HTML.fragment

代码语言:javascript
复制
doc = Nokogiri::HTML.fragment(string)

但它抱怨的是custom-tag

如何使用这个HTML片段使Nokogiri解析正确?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-29 10:27:47

doc = Nokogiri::HTML.fragment(string)是方法之一,您可以忽略doc.errors抱怨无效标签。

您给它的HTML无效,所以您不能期望它不报告错误,但HTML解析器往往是宽容的。

您也可以使用Nokogiri::XML.fragment,如果您确信它的其余部分是格式良好的话。这不会给您带来关于未定义标记的错误。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36278666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档