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.