XElem
@Js
class XElem : XNode
Models an XML element: its name, attributes, and children nodes.
Construct an element with unqualified local name and optional XML namespace
The XML namespace which qualified this element's name
Line number of XML element in source file or zero if unknown
Unqualified local name of the element
If child is a XAttr then add an attribute
Find an element by its non-qualified local name
String representation is as a start tag
Remove the attribute at the specified index into attrs
Get the children elements
If this element is qualified by an XML namespace then return the namespace's prefix
Remove the attribute from this element
Iterate each attribute in the attrs list
Return the XNodeType.elem
If this element is qualified by an XML namespace then return the namespace's uri
Iterate each child element, text, and PI node in the children list
Remove the child element, text, or PI from this element
Get this element's attributes as a readonly list
Add an attribute to this element
Get this element's children elements, text, and PIs as a readonly list
Get an attribute value by its non-qualified local name
Qualified name of the element
Remove the child element, text, or PI at the specified index into children
Make a shallow copy of this element
Return this element's child text node
Get an attribute by its non-qualified local name
Write this node to the output stream
Remove all the attributes
@Operator
This add(Obj child)
If child is a XAttr then add an attribute. Otherwise it must be a XElem, XText, or XPi and is added a child node. If the child node is already parented, then throw ArgErr. Return this.
This addAttr(Str name, Str val, XNs? ns)
Add an attribute to this element. Return this. This method is a convenience for:
add(XAttr(name, val, ns))
XAttr? attr(Str name, Bool checked)
Get an attribute by its non-qualified local name. If the attribute is not found and checked is false then return null otherwise throw XErr.
XAttr[] attrs()
Get this element's attributes as a readonly list.
XNode[] children()
Get this element's children elements, text, and PIs as a readonly list.
This clearAttrs()
Remove all the attributes. Return this.
This copy()
Make a shallow copy of this element.
Void each(|XNode,Int| f)
Iterate each child element, text, and PI node in the children list.
Void eachAttr(|XAttr,Int| f)
Iterate each attribute in the attrs list.
XElem? elem(Str name, Bool checked)
Find an element by its non-qualified local name. If there are multiple child elements with the name, then the first one is returned. If the element is not found and checked is false then return null otherwise throw XErr.
XElem[] elems()
Get the children elements. If this element contains text or PI nodes, then they are excluded in the result.
@Operator
Str? get(Str name, Bool checked)
Get an attribute value by its non-qualified local name. If the attribute is not found and checked is false then return null otherwise throw XErr.
Int : line
Line number of XML element in source file or zero if unknown.
new make(Str name, XNs? ns)
Construct an element with unqualified local name and optional XML namespace. The XNs instance should be defined as an attribute on this or an ancestor element (see XAttr.makeNs).
Str : name
Unqualified local name of the element. If an XML namespace prefix was specified, then this is everything after the colon:
<foo> => foo <x:foo> => foo
virtual XNodeType nodeType()
Return the XNodeType.elem. Note that during pull parsing XParser will return elemStart and elemEnd.
XNs? : ns
The XML namespace which qualified this element's name. If the element name is unqualified return null.
Str? prefix()
If this element is qualified by an XML namespace then return the namespace's prefix. Otherwise return null. If the namespace is the default namespace then prefix is "".
Str qname()
Qualified name of the element. This is the full name including the XML namespace prefix:
<foo> => foo <x:foo> => x:foo
XNode? remove(XNode child)
Remove the child element, text, or PI from this element. The child is matched by reference, so you must pass in the same XNode contained by this element. Return the removed node or null if no match.
XNode removeAt(Int index)
Remove the child element, text, or PI at the specified index into children. Return the removed node.
XAttr? removeAttr(XAttr attr)
Remove the attribute from this element. The attribute is matched by reference, so you must pass in the same XAttr contained by this element. Return the removed attribute or null if no match.
XAttr removeAttrAt(Int index)
Remove the attribute at the specified index into attrs. Return the removed attribute.
XText? text()
Return this element's child text node. If this element contains multiple text nodes then return the first one. If this element does not contain a text node return null.
virtual Str toStr()
String representation is as a start tag.
Uri? uri()
If this element is qualified by an XML namespace then return the namespace's uri. Otherwise return null.
virtual Void write(OutStream out)
Write this node to the output stream.