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.
我正在使用 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.