Models an XML element: its name, attributes, and children nodes.
Slots
- addSource
-
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.
- addAttrSource
-
This addAttr(Str name, Str val, XNs? ns := null)
Add an attribute to this element. Return this. This method is a convenience for:
add(XAttr(name, val, ns))
- attrSource
-
XAttr? attr(Str name, Bool checked := true)
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.
-
internal XAttr[] attrList := noAttrs
- attrsSource
-
XAttr[] attrs()
Get this element's attributes as a readonly list.
-
internal XNode[] childList := noNodes
- childrenSource
-
XNode[] children()
Get this element's children elements, text, and PIs as a readonly list.
- clearAttrsSource
-
This clearAttrs()
Remove all the attributes. Return this.
- copySource
-
This copy()
Make a shallow copy of this element.
- eachSource
-
Iterate each child element, text, and PI node in the children list.
- eachAttrSource
-
Iterate each attribute in the attrs list.
- elemSource
-
XElem? elem(Str name, Bool checked := true)
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.
- elemsSource
-
XElem[] elems()
Get the children elements. If this element contains text or PI nodes, then they are excluded in the result.
- getSource
-
Str? get(Str name, Bool checked := true)
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.
- lineSource
-
Int line
Line number of XML element in source file or zero if unknown.
- makeSource
-
new make(Str name, XNs? ns := null)
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
). - nameSource
-
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
-
const static internal XAttr[] noAttrs := XAttr[,]
-
const static internal XElem[] noElems := XElem[,]
-
const static internal XNode[] noNodes := XNode[,]
- nodeTypeSource
-
override XNodeType nodeType()
Overrides xml::XNode.nodeType
Return the
XNodeType.elem
. Note that during pull parsing XParser will returnelemStart
andelemEnd
. - nsSource
-
XNs? ns
The XML namespace which qualified this element's name. If the element name is unqualified return null.
- prefixSource
-
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 "".
- qnameSource
-
Str qname()
Qualified name of the element. This is the full name including the XML namespace prefix:
<foo> => foo <x:foo> => x:foo
- removeSource
-
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.
- removeAtSource
-
Remove the child element, text, or PI at the specified index into children. Return the removed node.
- removeAttrSource
-
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.
- removeAttrAtSource
-
Remove the attribute at the specified index into attrs. Return the removed attribute.
- textSource
-
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.
- toStrSource
-
override Str toStr()
Overrides sys::Obj.toStr
String representation is as a start tag.
- uriSource
-
Uri? uri()
If this element is qualified by an XML namespace then return the namespace's uri. Otherwise return null.
- writeSource
-
override Void write(OutStream out)
Overrides xml::XNode.write
Write this node to the output stream.