2010-01-27 3 views
0

любая идея, как я могу передать правильный аргумент xpath? Должно быть что-то о том, как использовать одиночные/двойные кавычки. Когда я использую переменнуюquotes issue (ruby)

parser_xpath_identificator = "'//table/tbody[@id=\"threadbits_forum_251\"]/tr'" дает мне неправильное значение или

parser_xpath_identificator = "'//table/tbody[@id="threadbits_forum_251"]/tr'" дает мне ошибку синтаксиса ошибки , неожиданный tIDENTIFIER, ожидая $ конец

require 'rubygems' 
require 'mechanize' 

parser_xpath_identificator = "'//table/tbody[@id=\"threadbits_forum_251\"]/tr'" 
# parser_xpath_identificator = "'//table/tbody[@id="threadbits_forum_251"]/tr'" 
    #gives an error: syntax error, unexpected tIDENTIFIER, expecting $end 

agent = WWW::Mechanize.new 
page = agent.get("http://www.vbulletin.org/forum/index.php") 
page = page.link_with(:text=>'vB4 General Discussions').click 
puts "Page title: #{page.title}" 
puts "\nfrom variable: #{page.parser.xpath(parser_xpath_identificator).length}" 
puts "directly: #{page.parser.xpath('//table/tbody[@id="threadbits_forum_251"]/tr').length}" 

ответ

2

В обоих случаях вы гнездящихся одного -отчеты непосредственно внутри двойных кавычек, которые, я думаю, не верны. Попробуйте следующее:

parser_xpath_identificator = '//table/tbody[@id="threadbits_forum_251"]/tr' 
+0

@ Джордан: Благодарим вас за правильный ответ и ваш комментарий. Теперь я вижу, что первые «двойные кавычки вообще не нужны» – Radek