Gunakan fungsi yang disediakan oleh pakej pengekodan/xml untuk mengekod dan menyahkod XML, dan menetapkan format lekukan

PHPz
Lepaskan: 2023-07-25 11:37:31
asal
1100 orang telah melayarinya

Gunakan pakej pengekodan/xml untuk mengekod dan menyahkod XML, dan tetapkan format lekukan

Dalam bahasa Go, pakej pengekodan/xml menyediakan satu siri fungsi untuk mengekod dan menyahkod XML. Fungsi ini boleh membantu kami menukar data struktur dalam bahasa Go kepada data dalam format XML, dan juga boleh menukar data dalam format XML kepada data struktur dalam bahasa Go. Pada masa yang sama, kami juga boleh menjadikan XML yang dihasilkan lebih mudah dibaca dengan menetapkan format lekukan.

Sebelum pengekodan dan penyahkod XML, kita perlu mentakrifkan struktur terlebih dahulu untuk mewakili data yang ingin kita tukar. Sebagai contoh, kami mentakrifkan struktur Orang seperti berikut:

type Person struct {
    Name    string `xml:"name"`
    Age     int    `xml:"age"`
    Address string `xml:"address"`
}
Salin selepas log masuk

Seterusnya, kita boleh menggunakan fungsi xml.MarshalIndent untuk mengekod struktur ke dalam rentetan XML dan menetapkan format lekukan. Contohnya adalah seperti berikut:

func main() {
    p := &Person{
        Name:    "Alice",
        Age:     25,
        Address: "123 Main St",
    }
    
    xmlData, err := xml.MarshalIndent(p, "", "    ")
    
    if err != nil {
        fmt.Println("XML encoding error:", err)
        return
    }
    
    fmt.Println(string(xmlData))
}
Salin selepas log masuk

Dalam contoh di atas, kami mengekod struktur Orang ke dalam data format XML melalui fungsi xml.MarshalIndent, dan menetapkan format lekukan kepada 4 ruang. Akhir sekali, kami menggunakan fungsi fmt.Println untuk mencetak rentetan XML yang dijana.

Hasil output adalah seperti berikut:

<Person>
    <name>Alice</name>
    <age>25</age>
    <address>123 Main St</address>
</Person>
Salin selepas log masuk

Dengan menetapkan format lekukan, data XML yang dihasilkan lebih mudah dibaca dan difahami.

Selain pengekodan, kami juga boleh menggunakan fungsi xml.Unmarshal untuk menyahkod data format XML kepada data struktur dalam bahasa Go. Contohnya adalah seperti berikut:

func main() {
    xmlData := []byte(`
        <Person>
            <name>Alice</name>
            <age>25</age>
            <address>123 Main St</address>
        </Person>
    `)
    
    var p Person
    
    err := xml.Unmarshal(xmlData, &p)
    
    if err != nil {
        fmt.Println("XML decoding error:", err)
        return
    }
    
    fmt.Println("Name:", p.Name)
    fmt.Println("Age:", p.Age)
    fmt.Println("Address:", p.Address)
}
Salin selepas log masuk

Dalam contoh di atas, kami mula-mula mentakrifkan data format XML, dan kemudian menggunakan fungsi xml.Unmarshal untuk menyahkod data XML ke dalam data struktur Orang. Akhir sekali, kami mencetak data yang dinyahkod menggunakan fungsi fmt.Println.

Hasil output adalah seperti berikut:

Name: Alice
Age: 25
Address: 123 Main St
Salin selepas log masuk

Melalui fungsi yang disediakan oleh pakej pengekodan/xml, kami boleh mengekod dan menyahkod XML dengan mudah, dan kami boleh menetapkan format lekukan untuk menjadikan XML yang dihasilkan lebih cantik dan boleh dibaca. Fungsi ini menyediakan cara yang mudah tetapi berkuasa untuk memproses data XML.

Atas ialah kandungan terperinci Gunakan fungsi yang disediakan oleh pakej pengekodan/xml untuk mengekod dan menyahkod XML, dan menetapkan format lekukan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!