Cara membaca atribut ruang nama XML dalam fail xml RDF menggunakan go

WBOY
Lepaskan: 2024-02-09 18:09:23
ke hadapan
462 orang telah melayarinya

如何使用 go 读取 RDF xml 文件中的 XML 命名空间属性

editor php Strawberry memperkenalkan anda cara menggunakan bahasa Go untuk membaca atribut ruang nama XML dalam fail XML RDF. Apabila memproses fail XML RDF, kita selalunya perlu membaca atribut ruang nama XML untuk menghuraikan elemen dan atribut dalam fail dengan betul. Bahasa Go menyediakan cara yang mudah dan cekap untuk mengendalikan tugas ini. Dengan menggunakan pakej pengekodan/xml dalam pustaka standard, kami boleh membaca atribut ruang nama XML dalam fail XML RDF dengan mudah dan menggunakannya untuk pemprosesan dan analisis data seterusnya. Dalam artikel ini, kami akan memperkenalkan cara menggunakan bahasa Go untuk menulis kod bagi melaksanakan fungsi ini, dan menyediakan beberapa contoh kod untuk rujukan. Sama ada anda seorang pemula atau pembangun bahasa Go yang berpengalaman, artikel ini akan memberikan anda maklumat berharga dan petua praktikal. Mari mulakan!

Kandungan soalan

Saya cuba menghuraikan fail XML berikut:

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:eu="http://iec.ch/TC57/CIM100-European#"
    xmlns:md="http://iec.ch/TC57/61970-552/ModelDescription/1#"
    xmlns:cim="http://iec.ch/TC57/CIM100#" > 
  <md:FullModel rdf:about="urn:uuid:52a409c9-72d8-4b5f-bf72-9a22ec9353f7">
   ......
Salin selepas log masuk

Dengan menggunakan kaedah go xml.NewDecoder(file).Decode(&model). Saya boleh mendapatkan semua "Model Penuh" dan semua item berikut, tetapi saya tidak dapat mengetahui cara mendapatkan nilai rentetan ruang nama ini: xmlns:rdf, xmlns:eu...

Kod saya: https://go.dev/play/p/qF_2er47_3R

Adakah terdapat sesuatu yang salah dengan kod saya?

Penyelesaian

Untuk menjana struktur Go daripada XML, anda boleh menggunakan penjana seperti miku/zek. Terdapat juga versi dalam talian. Kod ini sepatutnya berfungsi seperti yang dijangkakan: https://www.php.cn/link/486d016ed2f8a1de28c4b664be01f35f

Nod akar anda ialah RDFFullModel anak-anaknya, tetapi seperti yang anda huraikan FullModel 与结构中的 RDF Pada tahap yang sama.

Jika anda perlu menetapkan nama untuk nod akar, anda boleh menggunakan jenis medan struktur xml.Name. Menurut dokumentasi pengekodan/xml:

Kod anda:

type RDF struct {
    Rdf string `xml:"rdf,attr"`
    Eu  string `xml:"eu,attr"`
    Md  string `xml:"md,attr"`
    Cim string `xml:"cim,attr"`
}

type File_model struct {
    RDF   RDF       `xml:"RDF"`
    Model FullModel `xml:"FullModel"`
}
Salin selepas log masuk

Struktur yang dihasilkan:

type RDF struct {
    XMLName   xml.Name `xml:"RDF"`
    Text      string   `xml:",chardata"`
    Rdf       string   `xml:"rdf,attr"`
    Eu        string   `xml:"eu,attr"`
    Md        string   `xml:"md,attr"`
    Cim       string   `xml:"cim,attr"`
    FullModel struct {
        Text                      string `xml:",chardata"`
        About                     string `xml:"about,attr"`
        ...
    } `xml:"FullModel"`
    AccumulatorLimit struct {
        Text                        string `xml:",chardata"`
        ID                          string `xml:"ID,attr"`
        ...
}
Salin selepas log masuk

Atas ialah kandungan terperinci Cara membaca atribut ruang nama XML dalam fail xml RDF menggunakan go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:stackoverflow.com
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!