Kotlin:
Робота з XML
Як це робити:
У Kotlin ви можете використовувати вбудовані javax.xml.parsers
для парсингу:
import javax.xml.parsers.DocumentBuilderFactory
import org.w3c.dom.Document
fun parseXml(xmlData: String): Document {
val dbFactory = DocumentBuilderFactory.newInstance()
val dBuilder = dbFactory.newDocumentBuilder()
return dBuilder.parse(xmlData.byteInputStream())
}
Для створення XML-документів можна використовувати javax.xml.transform
:
import javax.xml.transform.TransformerFactory
import javax.xml.transform.dom.DOMSource
import javax.xml.transform.stream.StreamResult
import org.w3c.dom.Document
import java.io.StringWriter
fun convertDocumentToString(doc: Document): String {
val transformer = TransformerFactory.newInstance().newTransformer()
val result = StringWriter()
transformer.transform(DOMSource(doc), StreamResult(result))
return result.toString()
}
Приклад виводу для перетворення документа у рядок просто буде вашим XML-вмістом у форматі рядка.
Погляд углиб
XML був каменем спотикання у розробці вебу та програмного забезпечення з 90-х років, заслуживши визнання завдяки своїй читабельності та структурованій ієрархії. Хоча JSON набув популярності для веб-сервісів завдяки своїй простоті та меншому розміру повідомлень, XML залишається поширеним у корпоративному середовищі, веб-сервісах на основі SOAP та конфігураціях (наприклад, у файлах макету Android).
Є різні бібліотеки та API, крім вбудованих функцій Kotlin/Java для роботи з XML, такі як Simple XML Serialization та Jackson XML module. Але javax.xml.parsers
та javax.xml.transform
зазвичай задовольняють більшість потреб без додавання зовнішніх залежностей.
При роботі з XML у Kotlin ключові деталі реалізації включають належне вирішення проблем кодування символів і управління XML-ентітетами, щоб запобігти атакам через ін’єкцію XML. Будьте уважні до складностей простору імен та перевірки схеми під час аналізу XML, щоб забезпечити цілісність даних.