Kotlin:
XML:n käsittely

Kuinka:

Kotlin-kielessä voit käyttää sisäänrakennettua javax.xml.parsers -kirjastoa jäsentämiseen:

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-dokumenttien luomiseen saatat käyttää 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()
}

Yksinkertainen tulos dokumentin muuttamisesta merkkijonoksi olisi yksinkertaisesti XML-sisältösi merkkijonomuodossa.

Syväsukellus

XML on ollut web- ja ohjelmistokehityksen kulmakivi 90-luvulta lähtien, suosittu luettavuutensa ja jäsennellyn hierarkiansa ansiosta. Vaikka JSON on saavuttanut suosiota verkkopalveluissa sen yksinkertaisuuden ja pienemmän viestikoon vuoksi, XML on edelleen vallalla yritysympäristöissä, SOAP-pohjaisissa verkkopalveluissa ja konfiguraatioissa (kuten Androidin asettelutiedostoissa).

Kotlin/Java:n sisäänrakennettujen ominaisuuksien lisäksi XML-käsittelyyn on erilaisia kirjastoja ja API-rajapintoja, kuten Simple XML Serialization ja Jackson XML -moduuli. Mutta javax.xml.parsers ja javax.xml.transform tavallisesti täyttävät useimmat tarpeet lisäämättä ulkopuolisia riippuvuuksia.

Käsitellessäsi XML:ää Kotlinissa, keskeisiä toteutuksen yksityiskohtia ovat merkistökoodauksen oikea käsittely ja XML-entiteettien hallinta XML-injektiohyökkäysten estämiseksi. Ole tietoinen nimiavaruuden monimutkaisuuksista ja skeemavalidoinnista XML:n jäsentämisessä varmistaaksesi datan eheyden.

Katso Myös