class

XElem

@Js
class XElem : XNode

Models an XML element: its name, attributes, and children nodes.

constructors make

Construct an element with unqualified local name and optional XML namespace

fields ns

The XML namespace which qualified this element's name

line

Line number of XML element in source file or zero if unknown

name

Unqualified local name of the element

methods add

If child is a XAttr then add an attribute

elem

Find an element by its non-qualified local name

toStr

String representation is as a start tag

removeAttrAt

Remove the attribute at the specified index into attrs

elems

Get the children elements

prefix

If this element is qualified by an XML namespace then return the namespace's prefix

removeAttr

Remove the attribute from this element

eachAttr

Iterate each attribute in the attrs list

nodeType

Return the XNodeType.elem

uri

If this element is qualified by an XML namespace then return the namespace's uri

each

Iterate each child element, text, and PI node in the children list

remove

Remove the child element, text, or PI from this element

attrs

Get this element's attributes as a readonly list

addAttr

Add an attribute to this element

children

Get this element's children elements, text, and PIs as a readonly list

get

Get an attribute value by its non-qualified local name

qname

Qualified name of the element

removeAt

Remove the child element, text, or PI at the specified index into children

copy

Make a shallow copy of this element

text

Return this element's child text node

attr

Get an attribute by its non-qualified local name

write

Write this node to the output stream

clearAttrs

Remove all the attributes

add @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.

addAttr 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))

attr 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.

attrs XAttr[] attrs()

Get this element's attributes as a readonly list.

children XNode[] children()

Get this element's children elements, text, and PIs as a readonly list.

clearAttrs This clearAttrs()

Remove all the attributes. Return this.

copy This copy()

Make a shallow copy of this element.

each Void each(|XNode,Int| f)

Iterate each child element, text, and PI node in the children list.

eachAttr Void eachAttr(|XAttr,Int| f)

Iterate each attribute in the attrs list.

elem 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.

elems XElem[] elems()

Get the children elements. If this element contains text or PI nodes, then they are excluded in the result.

get @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.

line Int : line

Line number of XML element in source file or zero if unknown.

make 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).

name 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

nodeType virtual XNodeType nodeType()

Return the XNodeType.elem. Note that during pull parsing XParser will return elemStart and elemEnd.

ns XNs? : ns

The XML namespace which qualified this element's name. If the element name is unqualified return null.

prefix 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 "".

qname Str qname()

Qualified name of the element. This is the full name including the XML namespace prefix:

<foo>    =>  foo
<x:foo>  =>  x:foo

remove 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.

removeAt XNode removeAt(Int index)

Remove the child element, text, or PI at the specified index into children. Return the removed node.

removeAttr 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.

removeAttrAt XAttr removeAttrAt(Int index)

Remove the attribute at the specified index into attrs. Return the removed attribute.

text 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.

toStr virtual Str toStr()

String representation is as a start tag.

uri Uri? uri()

If this element is qualified by an XML namespace then return the namespace's uri. Otherwise return null.

write virtual Void write(OutStream out)

Write this node to the output stream.

Haxall 4.0.5 ∙ 24-Feb-2026 14:33 EST