Class: REXML::Attribute

# REXML::Attribute (Class)

In: | temp/attribute.rb
Parent: | Object

Defines an Element Attribute; IE, a attribute=value pair, as in: <element attribute="value"/>. Attributes can be in their own namespaces. General users of REXML will not interact with the Attribute class much.

## Methods

== clone element= hash inspect namespace new node_type prefix remove to_s to_string value write xpath

## Constants

PATTERN | = | /\s*(#{NAME_STR})\s*=\s*(["'])(.*?)\2/um

## Attributes

element | [R] | The element to which this attribute belongs
normalized | [W] | The normalized value of this attribute. That is, the attribute with entities intact.

## Included Modules

Node Namespace

## Public Class methods

new( first, second=nil, parent=nil )

Constructor.

     Attribute.new( attribute_to_clone )
     Attribute.new( source )
     Attribute.new( "attr", "attr_value" )
     Attribute.new( "attr", "attr_value", parent_element )

## Public Instance methods

==( other )

Returns true if other is an Attribute and has the same name and value, false otherwise.

clone()

Returns a copy of this attribute

element=( element )

Sets the element of which this object is an attribute. Normally, this is not directly called.

Returns this attribute

hash()

Creates (and returns) a hash from both the name and value

inspect()
namespacearg=nil

Returns the namespace URL, if defined, or nil otherwise

     e = Element.new("el")
     e.add_attributes({"xmlns:ns", "http://url"})
     e.namespace( "ns" )              # -> "http://url"

node_type()
prefix()

Returns the namespace of the attribute.

     e = Element.new( "elns:myelement" )
     e.add_attribute( "nsa:a", "aval" )
     e.add_attribute( "b", "bval" )
     e.attributes.get_attribute( "a" ).prefix   # -> "nsa"
     e.attributes.get_attribute( "b" ).prefix   # -> "elns"
     a = Attribute.new( "x", "y" )
     a.prefix                                   # -> ""

remove()

Removes this Attribute from the tree, and returns true if successfull

This method is usually not called directly.

to_s()

Returns the attribute value, with entities replaced

to_string()

Returns this attribute out as XML source, expanding the name

     a = Attribute.new( "x", "y" )
     a.to_string     # -> "x='y'"
     b = Attribute.new( "ns:x", "y" )
     b.to_string     # -> "ns:x='y'"

value()

Returns the UNNORMALIZED value of this attribute. That is, entities have been expanded to their values

write( output, indent=-1 )

Writes this attribute (EG, puts ‘key="value"’ to the output)

xpath()

[Validate]