处理HTML片段并返回它

Alj*_*jaz 13 ruby nokogiri

当我使用Nokogiri执行以下操作时:

some_html = '<img src="bleh.jpg"/>test<br/>'
f = Nokogiri::HTML(some_html)
#do some processing
puts f
Run Code Online (Sandbox Code Playgroud)

它将打印整个XHTML doc结构,其中包含高位代码.

我怎样才能打印/返回/获取some_html变量中的html部分?


没有.

f 将返回:

"<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www
.w3.org/TR/REC-html40/loose.dtd\">\n<html><body>\n<img src=\"bleh.jpg\">test<br>\n
</body></html>\n"
Run Code Online (Sandbox Code Playgroud)

我只想要内部/片段部分:

<img src=\"bleh.jpg\">test<br>
Run Code Online (Sandbox Code Playgroud)

the*_*Man 35

而不是使用Nokogiri::HTML(...)使用解析Nokogiri::HTML::fragment(...):

asdf = Nokogiri::HTML::fragment('<img src="bleh.jpg">test<br>')
print asdf.to_html
# >> <img src="bleh.jpg">test<br>
Run Code Online (Sandbox Code Playgroud)

  • 这是一个风格问题,但我个人觉得Nokogiri :: HTML.fragment比Nokogiri :: HTML :: fragment更容易混淆 - 它看起来不像拼写错误;) (3认同)

Cod*_*ust 0

“html”部分是什么意思?

只需f.text()获取内部文本即可。