Nokogiri Xpath Double Looping



我要做的是将包含td的代码块与类默认值拉到一起。这工作得很好。然后我需要整理代码块的不同部分。当我尝试使用第二个xpath调用时每次它都会打印每个块中的所有comhead

   def HeaderProcessor(doc)         
        doc.xpath("//td[@class='default']").each do |block|             
            puts block.xpath("//span[@class='comhead']").text
        end
    end

当我只是打印出块,每个块打印一次,并包含注释头和注释。当我尝试运行xpath时,它打印出doc中找到的每个comhead,并且似乎忽略了块变量。

有什么好主意吗?关于xpath,我还缺少什么理解?

更新:

<td class="default">
<div style="margin-top:2px; margin-bottom:-10px; ">
<span class="comhead">
#some data        
</span></div>
<br><span class="comment"><font color="#000000">#some more data</span>
</td>

当你说//span[@class='comhead']时,你告诉Nokogiri从根搜索,你只想要*/span[@class='comhead']:

doc.xpath("//td[@class='default']").each do |block|
    block.xpath("*/span[@class='comhead']").each do |span|
        puts span.text
    end
end

或者只是这样:

doc.xpath('//td[@class="default"]/*/span[@class="comhead"]').each do |span|
    puts span.text
end

如果您不需要对<td>元素做任何操作

相关内容

  • 没有找到相关文章

最新更新