Текст XML-тега в Kotlin
После разбора строки в объект Document
значение простого тега берут у найденного узла:
<root>
<label>alpha</label>
</root>
Поиск по имени и вывод текста в консоль:
import org.xml.sax.InputSource
import org.w3c.dom.Element
import java.io.StringReader
import javax.xml.parsers.DocumentBuilderFactory
fun main() {
val xml = """
<root>
<label>alpha</label>
</root>
""".trimIndent()
val doc = DocumentBuilderFactory.newInstance()
.newDocumentBuilder()
.parse(InputSource(StringReader(xml)))
val label = doc.getElementsByTagName("label")
.item(0) as Element
println(label.textContent)
}
Если данные разнесены по нескольким дочерним тегам, каждый ищут отдельно внутри общего родителя:
import org.xml.sax.InputSource
import org.w3c.dom.Element
import java.io.StringReader
import javax.xml.parsers.DocumentBuilderFactory
fun main() {
val xml = """
<root>
<record>
<title>alpha</title>
<code>01</code>
</record>
</root>
""".trimIndent()
val doc = DocumentBuilderFactory.newInstance()
.newDocumentBuilder()
.parse(InputSource(StringReader(xml)))
val record = doc.getElementsByTagName("record")
.item(0) as Element
val title = record.getElementsByTagName("title")
.item(0).textContent
val code = record.getElementsByTagName("code")
.item(0).textContent
println(title)
println(code)
}
Дан следующий XML:
val xml = """
<root>
<name>john</name>
</root>
""".trimIndent()
Выведите в консоль имя юзера.
Дан следующий XML:
val xml = """
<root>
<user>
<name>john</name>
<surn>smit</surn>
</user>
</root>
""".trimIndent()
Выведите в консоль имя и фамилию юзера.