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

ตัวอย่างผลลัพธ์สำหรับการแปลงเอกสารเป็น String จะเป็นเพียงเนื้อหา 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 entities เพื่อป้องกันการโจมตีด้วยการฉีด XML ระมัดระวังความซับซ้อนของเนมสเปซและการตรวจสอบสคีมาเมื่อแยกวิเคราะห์ XML เพื่อให้แน่ใจว่าข้อมูลมีความสมบูรณ์

ดูเพิ่มเติม