Quotes Issue (Ruby)
-
23-09-2019 - |
Pergunta
Alguma ideia de como posso passar o argumento correto para o XPath? Deve haver algo sobre como usar cotações únicas/duplas. Quando eu uso a variável
parser_xpath_identificator = "'//table/tbody[@id=\"threadbits_forum_251\"]/tr'"
me dá um valor incorreto ou
parser_xpath_identificator = "'//table/tbody[@id="threadbits_forum_251"]/tr'"
me dá um erro erro de sintaxe, inesperado Tentifier, esperando $ end
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}"
Solução
Nos dois casos, você está aninhando citações únicas diretamente dentro de citações duplas, o que eu acho que não está correto. Experimente isso:
parser_xpath_identificator = '//table/tbody[@id="threadbits_forum_251"]/tr'
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow