如何访问元素
How to access element
我是初学者 Rails 开发人员。我尝试了所有 Stack Overflow 的答案,但都没有成功。
我的 Nokogiri 元素是:
#<Nokogiri::XML::Element:0x3ff66cdbf144 name="busstop" attributes=[#<Nokogiri::XML::Attr:0x3ff66cdbf0a4 name="id" value="7c7b5df6-1657-11e5-94a5-00235443ce54">, #<Nokogiri::XML::Attr:0x3ff66cdbf07c name="name" value=" Еманжелинск">, #<Nokogiri::XML::Attr:0x3ff66cdbf068 name="region" value="Челябинская Область мес">, #<Nokogiri::XML::Attr:0x3ff66cdbf054 name="automated">]>
我需要访问:
attributes=[#<Nokogiri::XML::Attr:0x3ff66cdbf0a4 name="id" value="7c7b5df6-1657-11e5-94a5-00235443ce54">, #<Nokogiri::XML::Attr:0x3ff66cdbf07c name="name" value=" Еманжелинск">, #<Nokogiri::XML::Attr:0x3ff66cdbf068 name="region" value="Челябинская Область мес">
我试过这些:
stop.attribute("attributes")
stop.xpath("//busstop//attributes")
stop.xpath("//busstop//attributes/*")
stop[:attributes]
stop["attributes"]
stop.attributes
stop
是简单 each
循环中的临时变量。
我看到属性是另一个 Nokogiri 哈希。
我该如何解决?
不确定你的问题是什么,但它应该是这样工作的:
stop.attributes # returns something like {id: "...", name: "Еманжелинск"...}
stop.attribute_nodes # returns something like [#<Nokogiri::XML::Attr:0x3ff66cdbf0a4 ...]
stop.attribute['name'] # returns "Еманжелинск"
如果 stop.attributes
不起作用,那么检查 stop
变量的 class 是什么,可能既不是 Nokogiri::XML::Node
,也不是 Nokogiri::XML::Element
.还要检查 stop
是否实际上是一个 <busstop>
元素(它的 name
应该 return 'busstop')。
我是初学者 Rails 开发人员。我尝试了所有 Stack Overflow 的答案,但都没有成功。
我的 Nokogiri 元素是:
#<Nokogiri::XML::Element:0x3ff66cdbf144 name="busstop" attributes=[#<Nokogiri::XML::Attr:0x3ff66cdbf0a4 name="id" value="7c7b5df6-1657-11e5-94a5-00235443ce54">, #<Nokogiri::XML::Attr:0x3ff66cdbf07c name="name" value=" Еманжелинск">, #<Nokogiri::XML::Attr:0x3ff66cdbf068 name="region" value="Челябинская Область мес">, #<Nokogiri::XML::Attr:0x3ff66cdbf054 name="automated">]>
我需要访问:
attributes=[#<Nokogiri::XML::Attr:0x3ff66cdbf0a4 name="id" value="7c7b5df6-1657-11e5-94a5-00235443ce54">, #<Nokogiri::XML::Attr:0x3ff66cdbf07c name="name" value=" Еманжелинск">, #<Nokogiri::XML::Attr:0x3ff66cdbf068 name="region" value="Челябинская Область мес">
我试过这些:
stop.attribute("attributes")
stop.xpath("//busstop//attributes")
stop.xpath("//busstop//attributes/*")
stop[:attributes]
stop["attributes"]
stop.attributes
stop
是简单 each
循环中的临时变量。
我看到属性是另一个 Nokogiri 哈希。
我该如何解决?
不确定你的问题是什么,但它应该是这样工作的:
stop.attributes # returns something like {id: "...", name: "Еманжелинск"...}
stop.attribute_nodes # returns something like [#<Nokogiri::XML::Attr:0x3ff66cdbf0a4 ...]
stop.attribute['name'] # returns "Еманжелинск"
如果 stop.attributes
不起作用,那么检查 stop
变量的 class 是什么,可能既不是 Nokogiri::XML::Node
,也不是 Nokogiri::XML::Element
.还要检查 stop
是否实际上是一个 <busstop>
元素(它的 name
应该 return 'busstop')。