get_attribute( name )
public
Fetches an attribute
name: | the name by which to search for the attribute. Can be a
prefix:name namespace name.
|
Returns: | The first matching attribute, or nil if there was none. This
|
value is an Attribute node, not the String value of the attribute.
doc = Document.new '<a x:foo="1" foo="2" bar="3"/>'
doc.root.attributes.get_attribute("foo").value
doc.root.attributes.get_attribute("x:foo").value
Show source
def get_attribute( name )
attr = fetch( name, nil )
if attr.nil?
return nil if name.nil?
name =~ Namespace::NAMESPLIT
prefix, n = $1, $2
if prefix
attr = fetch( n, nil )
if attr == nil
elsif attr.kind_of? Attribute
return attr if prefix == attr.prefix
else
attr = attr[ prefix ]
return attr
end
end
element_document = @element.document
if element_document and element_document.doctype
expn = @element.expanded_name
expn = element_document.doctype.name if expn.size == 0
attr_val = element_document.doctype.attribute_of(expn, name)
return Attribute.new( name, attr_val ) if attr_val
end
return nil
end
if attr.kind_of? Hash
attr = attr[ @element.prefix ]
end
return attr
end