tidy up the dom API a little
This commit is contained in:
+25
-13
@@ -165,7 +165,7 @@ fun Document?.get(selector: String): List<Element> {
|
|||||||
Collections.EMPTY_LIST.sure() as List<Element>
|
Collections.EMPTY_LIST.sure() as List<Element>
|
||||||
} else {
|
} else {
|
||||||
// assume its a vanilla element name
|
// assume its a vanilla element name
|
||||||
this?.getElementsByTagName(selector).toElementList()
|
elements(selector)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Collections.EMPTY_LIST as List<Element>
|
Collections.EMPTY_LIST as List<Element>
|
||||||
@@ -186,7 +186,7 @@ fun Element.get(selector: String): List<Element> {
|
|||||||
Collections.EMPTY_LIST.sure() as List<Element>
|
Collections.EMPTY_LIST.sure() as List<Element>
|
||||||
} else {
|
} else {
|
||||||
// assume its a vanilla element name
|
// assume its a vanilla element name
|
||||||
this.getElementsByTagName(selector).toElementList()
|
elements(selector)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -200,18 +200,32 @@ inline fun Element?.children(): List<Node> {
|
|||||||
return this?.getChildNodes().toList()
|
return this?.getChildNodes().toList()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** The child elements of this document */
|
||||||
val Document?.elements : List<Element>
|
val Document?.elements : List<Element>
|
||||||
get() = this?.getElementsByTagName("*").toElementList()
|
get() = this?.getElementsByTagName("*").toElementList()
|
||||||
|
|
||||||
|
/** The child elements of this elements */
|
||||||
val Element?.elements : List<Element>
|
val Element?.elements : List<Element>
|
||||||
get() = this?.getElementsByTagName("*").toElementList()
|
get() = this?.getElementsByTagName("*").toElementList()
|
||||||
|
|
||||||
|
|
||||||
inline fun Element?.elementsByTagNameNS(namespaceUri: String?, localName: String?): List<Element> {
|
/** Returns all the child elements given the local element name */
|
||||||
|
inline fun Element?.elements(localName: String?): List<Element> {
|
||||||
|
return this?.getElementsByTagName(localName).toElementList()
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns all the elements given the local element name */
|
||||||
|
inline fun Document?.elements(localName: String?): List<Element> {
|
||||||
|
return this?.getElementsByTagName(localName).toElementList()
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns all the child elements given the namespace URI and local element name */
|
||||||
|
inline fun Element?.elements(namespaceUri: String?, localName: String?): List<Element> {
|
||||||
return this?.getElementsByTagNameNS(namespaceUri, localName).toElementList()
|
return this?.getElementsByTagNameNS(namespaceUri, localName).toElementList()
|
||||||
}
|
}
|
||||||
|
|
||||||
inline fun Document?.elementsByTagNameNS(namespaceUri: String?, localName: String?): List<Element> {
|
/** Returns all the elements given the namespace URI and local element name */
|
||||||
|
inline fun Document?.elements(namespaceUri: String?, localName: String?): List<Element> {
|
||||||
return this?.getElementsByTagNameNS(namespaceUri, localName).toElementList()
|
return this?.getElementsByTagNameNS(namespaceUri, localName).toElementList()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -308,27 +322,25 @@ inline fun Element.plusAssign(text: String?): Element = this.addText(text)
|
|||||||
|
|
||||||
// Builder
|
// Builder
|
||||||
|
|
||||||
/*
|
/**
|
||||||
Creates a new element which can be configured via a function
|
* Creates a new element which can be configured via a function
|
||||||
*/
|
*/
|
||||||
fun Document.createElement(name: String, init: Element.()-> Unit): Element {
|
fun Document.createElement(name: String, init: Element.()-> Unit): Element {
|
||||||
val elem = this.createElement(name).sure()
|
val elem = this.createElement(name).sure()
|
||||||
elem.init()
|
elem.init()
|
||||||
return elem
|
return elem
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/**
|
||||||
Creates a new element to an element which has an owner Document which can be configured via a function
|
* Creates a new element to an element which has an owner Document which can be configured via a function
|
||||||
*/
|
*/
|
||||||
fun Element.createElement(name: String, doc: Document? = null, init: Element.()-> Unit): Element {
|
fun Element.createElement(name: String, doc: Document? = null, init: Element.()-> Unit): Element {
|
||||||
val elem = ownerDocument(doc).createElement(name).sure()
|
val elem = ownerDocument(doc).createElement(name).sure()
|
||||||
elem.init()
|
elem.init()
|
||||||
return elem
|
return elem
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/** Returns the owner document of the element or uses the provided document */
|
||||||
Returns the owner document of the element or uses the provided document
|
|
||||||
*/
|
|
||||||
fun Node.ownerDocument(doc: Document? = null): Document {
|
fun Node.ownerDocument(doc: Document? = null): Document {
|
||||||
val answer = if (this is Document) this as Document
|
val answer = if (this is Document) this as Document
|
||||||
else if (doc == null) this.getOwnerDocument()
|
else if (doc == null) this.getOwnerDocument()
|
||||||
|
|||||||
Reference in New Issue
Block a user