如何打印 XPath 搜索?

How to print XPath search?

我正在尝试使用 Nokogiri 解析 XML 文件:

 require 'nokogiri'
 require 'open-uri'

  @doc = Nokogiri::XML(open('http://xml.pinnaclesports.com/pinnacleFeed.aspx?sportType=E%20Sports&contest=no'))
  @doc.xpath("//event[@league='*LOL*']")
  print @doc.text

可以工作并打印 "league" 属性中包含 "LOL" 的所有事件,但是当我创建一个块时,它运行但不打印任何内容:

@doc.xpath("//event[@league='*LOL*']").each do |league_element|
   puts "\n"+league_element.xpath('league').text
end
require 'nokogiri'
require 'open-uri'

@doc = Nokogiri::XML(open('http://xml.pinnaclesports.com/pinnacleFeed.aspx?sportType=E%20Sports&contest=no'))
events = @doc.xpath("//event[@league='*LOL*']")
puts @doc.children

.children "returns a new NodeSet containing all the children of all the nodes in the NodeSet." 您可以使用 children.xpath()

继续过滤节点名称和值

例如:

@doc = Nokogiri::XML(open('http://xml.pinnaclesports.com/pinnacleFeed.aspx?sportType=E%20Sports&contest=no'))
events = @doc.xpath("//event[@league='*LOL*']")
puts @doc.children.xpath('//league').text

=> LOL Cham Kor
=> LOL Cham Kor
=> ....

或者

@doc.children.each do |item|
  puts item.xpath('//league')
end