Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗ktSpXmInr 240 of 299 menu
◀ ▶

Введение в XML в Kotlin

XML - текстовый формат для структурированных данных. Его часто передают между сервисами или сохраняют в файле. Разметка похожа на HTML, но имена тегов и атрибутов задает автор схемы.

Документ начинается с объявления версии и содержит один корневой тег, внутри которого лежит всё содержимое. Каждый тег может иметь атрибуты в угловых скобках и текст между открывающим и закрывающим именем:

<?xml version="1.0"?> <root> <city code="spb">Saint Petersburg</city> </root>

Здесь корень - root, внутри тег city с атрибутом code и текстом названия. На JVM такой текст разбирают через DOM API из JDK: фабрика DocumentBuilderFactory создаёт DocumentBuilder, а строка передаётся через InputSource и StringReader.

Короткий разбор той же строки в программе выглядит так:

import org.xml.sax.InputSource import java.io.StringReader import javax.xml.parsers.DocumentBuilderFactory fun main() { val xml = """ <?xml version="1.0"?> <root> <city code="spb">Saint Petersburg</city> </root> """.trimIndent() val builder = DocumentBuilderFactory .newInstance() .newDocumentBuilder() val doc = builder.parse( InputSource(StringReader(xml)) ) val root = doc.documentElement println(root.tagName) val city = doc.getElementsByTagName("city") .item(0) println(city.attributes.getNamedItem("code").nodeValue) println(city.textContent) }

Свойство documentElement указывает на корень, getElementsByTagName находит узлы по имени, textContent возвращает текст внутри тега. Дальнейшие уроки опираются на эту цепочку без отдельных библиотек.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить