[英]Ruby 2.2 Using REXML
我關注了很多有關Ruby 2.2和REXML的教程。 這是我的xml的示例:
<msg user='Karim'><body action='ChkUsername' r='0'><ver v='153' /></body></msg>
這就是我目前作為代碼使用的內容:
xml = "<msg user='Karim'><body action='ChkUsername' r='0'><ver v='153' /></body></msg>"
doc = Document.new xml
puts doc.root.attributes[action]
那行不通。 彈出錯誤。 #{classname}的未定義局部變量或方法'action'(NameError)
您不能隨機假設變量存在。 令牌action
將不是字符串或符號,因此將被解釋為引用(例如,變量或方法調用)。 您沒有該變量或方法,因此您會收到一條錯誤消息,告訴您確切的問題是什么。
puts doc.root.attributes['action']
文檔的根是<msg>
標記。 所述<msg>
標簽不具有屬性action
。 它具有user
屬性,可以按預期訪問:
> require 'rexml/document'
> xml = "<msg user='Karim'><body action='ChkUsername' r='0'><ver v='153' /></body></msg>"
> doc = REXML::Document.new(xml)
> doc.root.attributes['user']
=> "Karim"
action
屬性進一步嵌套在文檔的<body>
元素中。
審問文檔有多種方法(本教程將介紹所有方法),例如,
> doc.elements.each('//body') do |body|
> puts body.attributes['action']
> end
ChkUsername
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.