Kotlin:
Praca z XML

Jak to zrobić:

W Kotlinie możesz użyć wbudowanego javax.xml.parsers do parsowania:

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())
}

Aby tworzyć dokumenty XML, możesz użyć 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()
}

Przykładowy wynik konwersji dokumentu na ciąg znaków to po prostu zawartość XML w formacie ciągu.

Pogłębiona analiza

XML od lat 90. stanowi kamień węgielny rozwoju sieci i oprogramowania, ceniony za swoją czytelność i strukturalną hierarchię. Chociaż JSON zyskał popularność w usługach sieciowych ze względu na swoją prostotę i mniejszy rozmiar wiadomości, XML pozostaje powszechny w środowiskach korporacyjnych, usługach sieciowych opartych na SOAP i konfiguracjach (takich jak pliki układu Android).

Istnieją różne biblioteki i API oprócz wbudowanych funkcji Kotlin/Java do obsługi XML, takie jak Simple XML Serialization i moduł XML Jacksona. Ale javax.xml.parsers i javax.xml.transform zazwyczaj spełniają większość potrzeb bez dodawania zewnętrznych zależności.

Podczas pracy z XML w Kotlinie kluczowe szczegóły implementacji obejmują odpowiednie obsługiwanie kodowania znaków i zarządzanie encjami XML, aby zapobiec atakom iniekcji XML. Bądź świadomy złożoności przestrzeni nazw i walidacji schematu podczas parsowania XML, aby zapewnić integralność danych.

Zobacz również