Ruby on rails 通过Nokogiri选择精确数据

Ruby on rails 通过Nokogiri选择精确数据,ruby-on-rails,ruby,xpath,nokogiri,Ruby On Rails,Ruby,Xpath,Nokogiri,我的数据库里有一个大学篮球队的名单。这些名称与我试图解析的网站上的名称完全匹配。这个网站是一张大桌子。我想根据数据库中的团队选择/匹配特定单元格。如果是css或xpath选择方法,我没有偏好。只要行得通。以下是返回的一个小示例(添加了一些换行符以供查看): doc=Nokogiri::HTML(打开http://kenpom.com/")) =>#这是一种可能的XPath: //*[@id="ratings-table"]/tbody/tr[contains(td[2],"Kentucky")]

我的数据库里有一个大学篮球队的名单。这些名称与我试图解析的网站上的名称完全匹配。这个网站是一张大桌子。我想根据数据库中的团队选择/匹配特定单元格。如果是css或xpath选择方法,我没有偏好。只要行得通。以下是返回的一个小示例(添加了一些换行符以供查看):

doc=Nokogiri::HTML(打开http://kenpom.com/"))

=>#这是一种可能的XPath:

//*[@id="ratings-table"]/tbody/tr[contains(td[2],"Kentucky")]/td[1]
XPath查找具有
td[2]
子元素的
tr
元素包含单词
“Kentucky”
,然后返回相应的
td[1]
子元素

或者,您可以检查
td[2]
a
子元素的精确值以查找目标行,然后返回目标列(
td
)元素:

//*[@id="ratings-table"]/tbody/tr[td[2]/a = "Kentucky"]/td[1]

非常感谢。有没有一种方法比包含的内容更精确?e、 如果我搜索包含“Michigan”的内容,我想确保它是Michigan而不是Michigan State…谢谢!另外,你了解ruby/ror吗?我尝试了
data.xpath(“/*[@id=“ratings table”]/tbody/tr[td[2]/a=“Kentucky”]/td[1]”并得到了语法错误:“``
SyntaxError:(irb):54:语法错误,意外的tIDENTIFIER,预期的’”
^
(irb):54:语法错误,意外的tSTRING\u BEG,预期的关键字是\/code>
(irb):54:语法错误,意外的t常量,预期输入结束
我不懂ruby,但这是编程语言中的一个常见问题:字符串分隔符冲突。在XPath表达式中用单引号替换双引号:
doc.XPath(“//*[@id='ratings-table']/tbody/tr[td[2]/a='Kentucky']/td[1]”
欢迎使用堆栈溢出。在请求调试代码的帮助时,我们希望得到示例输入,在您的情况下,这将是处理代码所需的最小HTML。我们希望用最少的代码来演示您的问题。您正在显示
inspect
输出,这会降低我们帮助您的能力。请回顾与Nokogiri相关的其他问题,了解如何提问以及您应该提供什么。