def each_attribute # :yields: attribute
      each_value do |val|
        if val.kind_of? Attribute
          yield val
        else
          val.each_value { |atr| yield atr }
        end
      end
    end
def each_attribute # :yields: attribute
      each_value do |val|
        if val.kind_of? Attribute
          yield val
        else
          val.each_value { |atr| yield atr }
        end
      end
    end
Iterates over the attributes of an Element.  Yields actual Attribute
 nodes, not String values.

  doc = Document.new '<a x="1" y="2"/>'
  doc.root.attributes.each_attribute {|attr|
    p attr.expanded_name+" => "+attr.value
  }