Kotlin:
Lavorare con XML
Come fare:
In Kotlin, puoi usare il built-in javax.xml.parsers
per l’analisi:
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())
}
Per creare documenti XML, potresti usare 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()
}
Un esempio di output per la conversione di un documento in String sarebbe semplicemente il tuo contenuto XML in un formato stringa.
Approfondimento
XML è stato un pilastro dello sviluppo web e software dagli anni ‘90, apprezzato per la sua leggibilità e struttura gerarchica. Sebbene JSON abbia guadagnato popolarità per i servizi web grazie alla sua semplicità e alla dimensione ridotta dei messaggi, XML rimane prevalente negli ambienti enterprise, nei servizi web basati su SOAP e nelle configurazioni (come i file di layout Android).
Ci sono varie librerie e API oltre alle funzionalità incorporate di Kotlin/Java per la gestione di XML, come Simple XML Serialization e il modulo XML di Jackson. Ma javax.xml.parsers
e javax.xml.transform
in genere soddisfano la maggior parte delle esigenze senza aggiungere dipendenze esterne.
Quando si lavora con XML in Kotlin, i dettagli implementativi chiave includono la gestione corretta della codifica dei caratteri e la gestione delle entità XML per prevenire attacchi di iniezione XML. Presta attenzione alle complessità dei namespace e alla validazione degli schemi quando analizzi l’XML per garantire l’integrità dei dati.