11155
(-- --)
September 2, 2013, 6:29pm
1
Why the string interpolation is not working inside the Nokogiri method
`#search` ?
require 'nokogiri'
doc = Nokogiri::HTML::Document.parse <<-eotl
<div>
<p>foo</p>
<p>foo</p>
<p>bar</p>
</div>
eotl
doc.class # => Nokogiri::HTML::Document
class Person
attr_accessor :name
end
ram = Person.new
ram.name="foo"
ram.name # => "foo"
doc.search('//div/p[text()= "#{ram.name}"]').to_a.size
# => 0
Where am I doing wrong ? please help!
You are not wrapping it in a "" or %Q{}...:
1. doc.search("//div/p[text()= \"#{ram.name}\"]").to_a.size
2. doc.search(%Q{//div/p[text()= "#{ram.name}"]}).to_a.size
11155
(-- --)
September 2, 2013, 7:18pm
3
@Jordon - Thank you very much - it worked like a charm!!
require 'nokogiri'
doc = Nokogiri::HTML::Document.parse <<-eotl
<div>
<p>foo</p>
<p>foo</p>
<p>bar</p>
</div>
eotl
doc.class # => Nokogiri::HTML::Document
class Person
attr_accessor :name
end
ram = Person.new
ram.name="foo"
ram.name # => "foo"
doc.search("//div/p[text()= \"#{ram.name}\"]").to_a.size
# => 2