2

我有看起来像这样的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
4

1 回答 1

5

Use .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"

Edit: you can use .inner_html with the XPath selector you have above too.

于 2012-12-07T03:43:05.350 回答