我的html看起来像这样:
<textarea id='embed'>
<iframe frameborder='0' width='728' height='450' src='http://somelink'>
</iframe> some more text
</textarea>
我的代码是:
doc.at('textarea[@id="embed"]').content
然而,这会返回some more text
我想获取整个文本区域(包括iframe
链接)。所以最后我想要这个:
<iframe frameborder='0' width='728' height='450' src='http://somelink'>
</iframe> some more text
答案 0 :(得分:4)
使用.inner_html
。
[1] pry(main)> require 'nokogiri'
=> true
[2] pry(main)> noko = Nokogiri::HTML("<textarea id='embed'>
[2] pry(main)* <iframe frameborder='0' width='728' height='450' src='http://www.dailymotion.com/embed/video/xvnu79'>
[2] pry(main)* </iframe> some more text
[2] pry(main)* </textarea>");
[3] pry(main)> noko.css("#embed").inner_html
=> "<iframe frameborder=\"0\" width=\"728\" height=\"450\" src=\"http://www.dailymotion.com/embed/video/xvnu79\">\n </iframe> some more text\n"
编辑:您可以将.inner_html
与上面的XPath选择器一起使用。