###
8.6.2.6 Element Objects

`Element` is a subclass of `Node`, so inherits all the attributes of that class.

`tagName`
  The element type name. In a namespace-using document it may have colons in it. The value is a string.

`getElementsByTagName`( | tagName)

  Same as equivalent method in the `Document` class.

`getElementsByTagNameNS`( | tagName)

  Same as equivalent method in the `Document` class.

`hasAttribute`( | name)

  Returns true if the element has an attribute named by name.

`hasAttributeNS`( | namespaceURI, localName)

  Returns true if the element has an attribute named by namespaceURI and localName.

`getAttribute`( | name)

  Return the value of the attribute named by name as a string. If no such attribute exists, an empty string is returned, as if the attribute had no value.

`getAttributeNode`( | attrname)

  Return the `Attr` node for the attribute named by attrname.

`getAttributeNS`( | namespaceURI, localName)

  Return the value of the attribute named by namespaceURI and localName as a string. If no such attribute exists, an empty string is returned, as if the attribute had no value.

`getAttributeNodeNS`( | namespaceURI, localName)

  Return an attribute value as a node, given a namespaceURI and localName.

`removeAttribute`( | name)

  Remove an attribute by name. No exception is raised if there is no matching attribute.

`removeAttributeNode`( | oldAttr)

  Remove and return oldAttr from the attribute list, if present. If oldAttr is not present, `NotFoundErr` is raised.

`removeAttributeNS`( | namespaceURI, localName)

  Remove an attribute by name. Note that it uses a localName, not a qname. No exception is raised if there is no matching attribute.

`setAttribute`( | name, value)

  Set an attribute value from a string.

`setAttributeNode`( | newAttr)

  Add a new attribute node to the element, replacing an existing attribute if necessary if the `name` attribute matches. If a replacement occurs, the old attribute node will be returned. If newAttr is already in use, `InuseAttributeErr` will be raised.

`setAttributeNodeNS`( | newAttr)

  Add a new attribute node to the element, replacing an existing attribute if necessary if the `namespaceURI` and `localName` attributes match. If a replacement occurs, the old attribute node will be returned. If newAttr is already in use, `InuseAttributeErr` will be raised.

`setAttributeNS`( | namespaceURI, qname, value)

  Set an attribute value from a string, given a namespaceURI and a qname. Note that a qname is the whole attribute name. This is different than above.