Ruby - 按 ID 查找标签

Ruby - Find Tag by ID

我正在使用 mechanize 和 nokogiri。我试图找到这个标签。当我检查 HTML 时,它看起来像这样。

<table class="matchupBox" id="MLB_5_block ">

当我在控制台中打印出来时,它看起来像这样

#<Nokogiri::XML::Element:0x2cc1a1c name="table" attributes=[
#<Nokogiri::XML::Attr:0x2cc1940 name="class" value="matchupBox">,
 #<Nokogiri::XML::Attr:0x2cc192c name="id" value="MLB_5_block\r\n            ">]

我正在使用此代码。

doc.search("table#MLB_5_block")

但不匹配。而这确实匹配

doc.search("table.matchupBox")

所以我认为问题与网站正在添加的“\r\n”白色 space 有关。我如何匹配它,使用 id,而不依赖于 whitespace?

你尝试做:

doc.search("//table[normalize-space(@id) = 'MLB_5_block']")

The normalize-space function returns the argument string with whitespace normalized by stripping leading and trailing whitespace and replacing sequences of whitespace characters by a single space.