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!
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"> ......
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?
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 RDF
和 FullModel
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"` }
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"` ... }
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!