Class | REXML::Attribute |
In: |
temp/attribute.rb
|
Parent: | Object |
PATTERN | = | /\s*(#{NAME_STR})\s*=\s*(["'])(.*?)\2/um |
NEEDS_A_SECOND_CHECK | = | /(<|&((#{Entity::NAME});|(#0*((?:\d+)|(?:x[a-fA-F0-9]+)));)?)/um |
element | [R] | The element to which this attribute belongs |
normalized | [W] | The normalized value of this attribute. That is, the attribute with entities intact. |
Constructor. FIXME: The parser doesn‘t catch illegal characters in attributes
first: | Either: an Attribute, which this new attribute will become a clone of; or a String, which is the name of this attribute |
second: | If first is an Attribute, then this may be an Element, or nil. If nil, then the Element parent of this attribute is the parent of the first Attribute. If the first argument is a String, then this must also be a String, and is the content of the attribute. If this is the content, it must be fully normalized (contain no illegal characters). |
parent: | Ignored unless first is a String; otherwise, may be the Element parent of this attribute, or nil. |
Attribute.new( attribute_to_clone ) Attribute.new( attribute_to_clone, parent_element ) Attribute.new( "attr", "attr_value" ) Attribute.new( "attr", "attr_value", parent_element )
Sets the element of which this object is an attribute. Normally, this is not directly called.
Returns this attribute
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"
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 # -> ""
Removes this Attribute from the tree, and returns true if successfull
This method is usually not called directly.
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'"
Returns the UNNORMALIZED value of this attribute. That is, entities have been expanded to their values