Rust:
การทำงานกับ XML

วิธีการ:

ใน Rust, คุณสามารถจัดการ XML ได้ด้วย crates เช่น xml-rs ติดตั้งโดยการเพิ่ม xml-rs = "0.8" ลงใน Cargo.toml นี่คือวิธีการวิเคราะห์ XML ง่ายๆ:

extern crate xml;

use xml::reader::{EventReader, XmlEvent};

fn main() {
    let xml_data = r#"<book category="fiction">
    <title>Rust in Action</title>
    <author>Tim McNamara</author>
    <year>2021</year>
</book>"#;

    let parser = EventReader::from_str(xml_data);
    for e in parser {
        match e {
            Ok(XmlEvent::StartElement { name, .. }) => {
                println!("เริ่ม: {}", name);
            }
            Ok(XmlEvent::Characters(data)) => {
                println!("ข้อความ: {}", data);
            }
            Ok(XmlEvent::EndElement { name }) => {
                println!("สิ้นสุด: {}", name);
            }
            Err(e) => {
                println!("ข้อผิดพลาด: {}", e);
            }
            _ => {}
        }
    }
}

ผลลัพธ์:

เริ่ม: book
เริ่ม: title
ข้อความ: Rust in Action
สิ้นสุด: title
เริ่ม: author
ข้อความ: Tim McNamara
สิ้นสุด: author
เริ่ม: year
ข้อความ: 2021
สิ้นสุด: year
สิ้นสุด: book

โค้ดนี้อ่านข้อมูล XML แบบสตรีม, จัดการกับองค์ประกอบเริ่มต้นและสิ้นสุด รวมถึงข้อมูลข้อความ, บันทึกทุกขั้นตอน

ลงลึก:

XML เป็นเทคโนโลยีรุ่นเก่า, ถูกสร้างขึ้นสำหรับเว็บในช่วงปลาย 90s การออกแบบของมันส่งเสริมให้มีการอ่านที่ง่าย (ทั้งสำหรับเครื่องและคน) และข้อมูลที่อธิบายตัวเองอย่างละเอียด

มีทางเลือกอื่นหรือไม่? แน่นอน, JSON เป็นตัวเลือกยอดนิยมในยุคสมัยใหม่สำหรับ Web API, เบากว่าและมีรายละเอียดน้อยกว่า ในขณะเดียวกัน YAML ก็ได้รับความนิยมสำหรับการกำหนดค่าด้วยโครงสร้างที่เรียบง่าย แต่ XML ก็ยังไม่ได้หายไปในเร็วๆ นี้—มีโครงสร้างพื้นฐานขนาดใหญ่ที่สร้างขึ้นบน XML

ภายใต้ฝาครอบ, การวิเคราะห์ XML ของ Rust ใช้รูปแบบ iterator, ทำให้การใช้หน่วยความจำต่ำและประสิทธิภาพสูง คุณจะพบ crates เช่น serde-xml-rs สำหรับประสบการณ์ที่คล้ายกับ serde ซึ่งเป็นข้อดีสำหรับผู้ที่คุ้นเคยกับการจัดการ JSON

ดูเพิ่มเติม:

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ Rust และ XML: