l'éditeur php Strawberry vous présente comment utiliser le langage Go pour lire les attributs d'espace de noms XML dans les fichiers XML RDF. Lors du traitement de fichiers XML RDF, nous devons souvent lire les attributs de l'espace de noms XML afin d'analyser correctement les éléments et les attributs du fichier. Le langage Go offre un moyen simple et efficace de gérer cette tâche. En utilisant le package encoding/xml dans la bibliothèque standard, nous pouvons facilement lire les attributs de l'espace de noms XML dans les fichiers XML RDF et les utiliser pour le traitement et l'analyse ultérieurs des données. Dans cet article, nous présenterons comment utiliser le langage Go pour écrire du code permettant d'implémenter cette fonction et fournirons un exemple de code pour référence. Que vous soyez débutant ou développeur expérimenté du langage Go, cet article vous fournira de précieuses informations et des conseils pratiques. commençons!
J'essaie d'analyser le fichier XML suivant :
<?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"> ......
En utilisant la méthode go xml.NewDecoder(file).Decode(&model)
. Je suis capable d'obtenir tous les "FullModel" et tous les éléments suivants, mais je n'arrive pas à comprendre comment obtenir ces valeurs de chaîne d'espace de noms : xmlns:rdf, xmlns:eu...
Mon code : https://go.dev/play/p/qF_2er47_3R
Y a-t-il un problème avec mon code ?
Pour générer des structures Go à partir de XML, vous pouvez utiliser un générateur tel que miku/zek. Il existe également une version en ligne. Ce code devrait fonctionner comme prévu : https://www.php.cn/link/486d016ed2f8a1de28c4b664be01f35f
Votre nœud racine est RDF
和 FullModel
ses enfants, mais comme vous le décrivez
FullModel
与结构中的 RDF
Au même niveau.
Si vous devez définir un nom pour le nœud racine, vous pouvez utiliser le type de champ de structure xml.Name
. D'après la documentation de encoding/xml :
Votre code :
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"` }
Structure générée :
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"` ... }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!