Kotlin:
Làm việc với XML

Làm Thế Nào:

Trong Kotlin, bạn có thể sử dụng javax.xml.parsers tích hợp sẵn để phân tích cú pháp:

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

Để tạo các tài liệu XML, bạn có thể sử dụng 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()
}

Kết quả mẫu cho việc chuyển đổi tài liệu thành Chuỗi sẽ đơn giản là nội dung XML của bạn dưới dạng định dạng chuỗi.

Sâu Hơn

XML đã là một trụ cột của phát triển web và phần mềm kể từ những năm 90, được ưa chuộng vì tính dễ đọc và cấu trúc phân cấp của nó. Mặc dù JSON đã trở nên phổ biến đối với các dịch vụ web do đơn giản và kích thước thông điệp nhỏ hơn, XML vẫn thịnh hành trong môi trường doanh nghiệp, dịch vụ web dựa trên SOAP và cấu hình (như các tệp bố cục Android).

Có nhiều thư viện và API khác ngoài các tính năng tích hợp sẵn của Kotlin/Java cho việc xử lý XML, như Simple XML Serialization và Jackson XML module. Nhưng javax.xml.parsersjavax.xml.transform thường đáp ứng hầu hết nhu cầu mà không cần thêm phụ thuộc bên ngoài.

Khi xử lý XML trong Kotlin, các chi tiết thực hiện quan trọng bao gồm việc xử lý mã hóa ký tự đúng cách và quản lý thực thể XML để ngăn chặn các cuộc tấn công XML injection. Hãy chú ý đến các phức tạp về không gian tên và xác thực lược đồ khi phân tích cú pháp XML để đảm bảo tính toàn vẹn của dữ liệu.

Xem Thêm