当孩子是使用Nori的文本节点时如何访问属性值

时间:2019-12-01 06:01:15

标签: ruby nokogiri

我尝试过:

class Foo(models.Model):
   ...
   def save(self, *args, **kwargs):
       if not self.pk:
           # save the token when record created
           cache.set('token_key', '<Your token>', timeout=60)
       super(Foo, self).save(*args, **kwargs)

   @property
   def is_token_expired(self):
       # check if the token expired
       return cache.get('token_key') is None

   @property
   def token(self):
       # get token
       return cache.get('token_key')

结果是:

xml_parser = Nori.new
xml_parser.parse "<FareReference ResBookDesigCode='Q'>Value</FareReference>"

我也想检索{"FareReference"=>"Value"} 值。

1 个答案:

答案 0 :(得分:0)

Nokogiri是我推荐的工具,因为Nori似乎没有得到积极的支持。

require 'nokogiri'

doc = Nokogiri::XML("<FareReference ResBookDesigCode='Q'>Value</FareReference>")

doc现在包含XML的DOM。

我们可以轻松访问FareReference节点的内容及其参数:

doc.at('FareReference').text # => "Value"
doc.at('FareReference')['ResBookDesigCode'] # => "Q"

at基本上意味着找到包含该选择器的第一个节点。文档和教程介绍了同级方法。