class xml::XElem

sys::Obj
  xml::XNode
    xml::XElem

@Js

Source

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

add

@Operator
This add(Obj child)

Source

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 := null)

Source

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 := true)

Source

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

Source

Get this element's attributes as a readonly list.

children

XNode[] children()

Source

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

clearAttrs

This clearAttrs()

Source

Remove all the attributes. Return this.

copy

This copy()

Source

Make a shallow copy of this element.

each

Void each(|XNode,Int| f)

Source

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

eachAttr

Void eachAttr(|XAttr,Int| f)

Source

Iterate each attribute in the attrs list.

elem

XElem? elem(Str name, Bool checked := true)

Source

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

Source

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 := true)

Source

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

Source

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

make

new make(Str name, XNs? ns := null)

Source

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

Source

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 override XNodeType nodeType()

Source

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

ns

XNs? ns

Source

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

prefix

Str? prefix()

Source

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

Source

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)

Source

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)

Source

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

removeAttr

XAttr? removeAttr(XAttr attr)

Source

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)

Source

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

text

XText? text()

Source

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 override Str toStr()

Source

String representation is as a start tag.

uri

Uri? uri()

Source

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

write

virtual override Void write(OutStream out)

Source

Write this node to the output stream.