首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Ruby的Sanitize/Nokogiri访问未标记的元素?

如何使用Ruby的Sanitize/Nokogiri访问未标记的元素?
EN

Stack Overflow用户
提问于 2010-07-03 01:22:23
回答 1查看 605关注 0票数 1

我正在尝试构建一个Sanitize转换器,它可以接受带有任何标记之外的元素的潜在格式错误的HTML输入,如下例所示:

代码语言:javascript
复制
out of a tag<p>in a tag</p>out again!

我想让转换器将任何未标记的元素包装在<p>标记中,以便上面的代码转换为:

代码语言:javascript
复制
<p>out of a tag</p><p>in a tag</p><p>out again!</p>

不幸的是,我不知道如何选择未标记的元素,因为它不是一个节点。我肯定我漏掉了什么。有人能给我一个正确的方向吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-07-03 01:51:33

代码语言:javascript
复制
require 'nokogiri'

html = 'out of a tag<p>in a tag</p>out again!'

Nokogiri::HTML(html).at_css('body').children.
  map {|x| '<p>' + x.text + '</p>' }.join('')
#=> "<p>out of a tag</p><p>in a tag</p><p>out again!</p>"

文本存储在文本节点中。因为CSS不能选择文本节点,所以您必须使用其他方法来获取它们,比如Nokogiri::XML::Node#children

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

https://stackoverflow.com/questions/3167809

复制
相关文章

相似问题

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