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

דוגמא לפלט של המרת מסמך למחרוזת תהיה פשוטה התוכן XML שלך בפורמט מחרוזת.

צלילה עמוקה

XML היא אבן פינה של פיתוח אתרים ותוכנה משנות ה-90, שנבחרה בזכות הקריאות שלה והיררכיה המבנית. למרות ש-JSON זכה לפופולריות לשירותי אינטרנט בשל הפשטות וגודל ההודעה הקטן יותר שלו, XML נשאר נפוץ בסביבות ארגוניות, שירותי אינטרנט מבוססי SOAP, ותצורות (כמו קבצי פריסה של אנדרואיד).

ישנן ספריות ו-APIs שונים מעבר לתכונות המובנות של Kotlin/Java לטיפול ב-XML, כמו Simple XML Serialization ו-Jackson XML module. אבל javax.xml.parsers ו-javax.xml.transform בדרך כלל מספקות את רוב הצרכים מבלי להוסיף תלות חיצונית.

כאשר עוסקים ב-XML ב-Kotlin, פרטי היישום המרכזיים כוללים טיפול נכון בקידוד תווים וניהול ישויות XML כדי למנוע התקפות זריקת XML. יש להיות מודעים למורכבויות של מרחבי שמות ואימות סכימה בעת ניתוח XML כדי להבטיח את שלמות הנתונים.

ראה גם