Shorthand for filterChildElems(p)
.
Shorthand for filterChildElems(p)
. Use this shorthand only if the predicate is a short expression.
Shorthand for attributeOption(expandedName)
.
Shorthand for attributeOption(expandedName)
.
Shorthand for filterElemsOrSelf(p)
.
Shorthand for filterElemsOrSelf(p)
. Use this shorthand only if the predicate is a short expression.
Shorthand for findTopmostElemsOrSelf(p)
.
Shorthand for findTopmostElemsOrSelf(p)
. Use this shorthand only if the predicate is a short expression.
Returns the value of the attribute with the given expanded name, and throws an exception otherwise.
Returns the value of the attribute with the given expanded name, and throws an exception otherwise.
Returns the value of the attribute with the given expanded name, if any, wrapped in an Option
.
Returns the value of the attribute with the given expanded name, if any, wrapped in an Option
.
Returns the optional base URI, computed from the document URI, if any, and the XML base attributes of the ancestors, if any.
The optional document URI of the containing document, if any
The underlying element, of the underlying element type.
The underlying element, of the underlying element type. It must be equal to:
rootElem.getElemOrSelfByPath(path)
Returns the child elements obeying the given predicate.
Returns the child elements obeying the given predicate. This method could be defined as:
def filterChildElems(p: E => Boolean): immutable.IndexedSeq[E] = this.findAllChildElems.filter(p)
Returns the descendant elements obeying the given predicate.
Returns the descendant elements obeying the given predicate. This method could be defined as:
this.findAllChildElems flatMap (_.filterElemsOrSelf(p))
Returns the descendant-or-self elements obeying the given predicate.
Returns the descendant-or-self elements obeying the given predicate. This method could be defined as:
def filterElemsOrSelf(p: E => Boolean): immutable.IndexedSeq[E] = Vector(this).filter(p) ++ (this.findAllChildElems flatMap (_.filterElemsOrSelf(p)))
It can be proven that the result is equivalent to findAllElemsOrSelf filter p
.
Core method that returns all child elements, in the correct order.
Core method that returns all child elements, in the correct order. Other operations can be defined in terms of this one.
Returns all child elements paired with their path entries.
Returns all child elements paired with their path entries.
Returns all descendant elements (not including this element).
Returns all descendant elements (not including this element). This method could be defined as filterElems { e => true }
.
Equivalent to findAllElemsOrSelf.drop(1)
.
Returns this element followed by all descendant elements (that is, the descendant-or-self elements).
Returns this element followed by all descendant elements (that is, the descendant-or-self elements).
This method could be defined as filterElemsOrSelf { e => true }
.
Returns the first found attribute value of an attribute with the given local name, if any, wrapped in an Option
.
Returns the first found attribute value of an attribute with the given local name, if any, wrapped in an Option
.
Because of differing namespaces, it is possible that more than one such attribute exists, although this is not often the case.
Returns the first found child element obeying the given predicate, if any, wrapped in an Option
.
Returns the first found child element obeying the given predicate, if any, wrapped in an Option
.
This method could be defined as filterChildElems(p).headOption
.
Finds the child element with the given Path.Entry
(where this element is the root), if any, wrapped in an Option
.
Finds the child element with the given Path.Entry
(where this element is the root), if any, wrapped in an Option
.
Typically this method must be very efficient, in order for methods like findElemOrSelfByPath to be efficient.
Returns the first found (topmost) descendant element obeying the given predicate, if any, wrapped in an Option
.
Returns the first found (topmost) descendant element obeying the given predicate, if any, wrapped in an Option
.
This method could be defined as filterElems(p).headOption
.
Returns the first found (topmost) descendant-or-self element obeying the given predicate, if any, wrapped in an Option
.
Returns the first found (topmost) descendant-or-self element obeying the given predicate, if any, wrapped in an Option
.
This method could be defined as filterElemsOrSelf(p).headOption
.
Finds the element with the given Path
(where this element is the root), if any, wrapped in an Option
.
Finds the element with the given Path
(where this element is the root), if any, wrapped in an Option
.
That is, returns:
findReverseAncestryOrSelfByPath(path).map(_.last)
Note that for each non-empty Path, we have:
findElemOrSelfByPath(path) == findChildElemByPathEntry(path.firstEntry) flatMap (e => e.findElemOrSelfByPath(path.withoutFirstEntry))
Finds the reversed ancestry-or-self of the element with the given Path
(where this element is the root),
wrapped in an Option.
Finds the reversed ancestry-or-self of the element with the given Path
(where this element is the root),
wrapped in an Option. None is returned if no element can be found at the given Path.
Hence, the resulting element collection, if any, starts with this element and ends with the element at the given Path, relative to this element.
This method comes in handy for (efficiently) computing base URIs, where the (reverse) ancestry-or-self is needed as input.
Returns the descendant elements obeying the given predicate that have no ancestor obeying the predicate.
Returns the descendant elements obeying the given predicate that have no ancestor obeying the predicate. This method could be defined as:
this.findAllChildElems flatMap (_.findTopmostElemsOrSelf(p))
Returns the descendant-or-self elements obeying the given predicate, such that no ancestor obeys the predicate.
Returns the descendant-or-self elements obeying the given predicate, such that no ancestor obeys the predicate. This method could be defined as:
def findTopmostElemsOrSelf(p: E => Boolean): immutable.IndexedSeq[E] = if (p(this)) Vector(this) else (this.findAllChildElems flatMap (_.findTopmostElemsOrSelf(p)))
Returns the single child element obeying the given predicate, and throws an exception otherwise.
Returns the single child element obeying the given predicate, and throws an exception otherwise.
This method could be defined as findChildElem(p).get
.
Returns (the equivalent of) findChildElemByPathEntry(entry).get
Returns (the equivalent of) findChildElemByPathEntry(entry).get
Returns (the equivalent of) findElemOrSelfByPath(path).get
Returns (the equivalent of) findElemOrSelfByPath(path).get
Returns (the equivalent of) findReverseAncestryOrSelfByPath(path).get
Returns (the equivalent of) findReverseAncestryOrSelfByPath(path).get
The local name, that is, the local part of the EName
The local name, that is, the local part of the EName
Returns XmlStringUtils.normalizeString(text)
.
Returns XmlStringUtils.normalizeString(text)
.
The path of this element, relative to the root element
The resolved attributes of the element as mapping from ENames to values
The resolved attributes of the element as mapping from ENames to values
The EName of the element
The EName of the element
Returns the ENames of the ancestry reversed, starting with the root element and ending with the parent of this element, if any.
Returns the ENames of the ancestry reversed, starting with the root element and ending with the parent of this element, if any.
That is, returns:
reverseAncestryOrSelfENames.dropRight(1)
Returns the reversed ancestor-or-self elements.
Returns the reversed ancestor-or-self elements. That is, returns:
rootElem.findReverseAncestryOrSelfByPath(path).get
Returns the ENames of the ancestry-or-self reversed, starting with the root element and ending with this element.
Returns the ENames of the ancestry-or-self reversed, starting with the root element and ending with this element.
That is, returns:
rootElem.resolvedName +: path.entries.map(_.elementName)
This is equal to:
reverseAncestryOrSelf.map(_.resolvedName)
The root element of the underlying element type
Returns the concatenation of the text values of (the implicit) text children, including whitespace and CData.
Returns the concatenation of the text values of (the implicit) text children, including whitespace and CData. Non-text children are ignored. If there are no text children, the empty string is returned.
Therefore, element children are ignored and do not contribute to the resulting text string.
Returns text.trim
.
Returns text.trim
.
Abstract API for "indexed elements".
Note how this API removes the need for an API which is like the
ElemApi
API, but taking and returning pairs of elements and paths. This could be seen as that API, re-usingElemApi
instead of adding an extra API similar to it. TheseIndexedClarkElemApi
objects "are" the above-mentioned pairs of elements and paths.The element type itself
The underlying element type