Maison > développement back-end > Golang > Comment lire les attributs d'espace de noms XML dans un fichier XML RDF à l'aide de go

Comment lire les attributs d'espace de noms XML dans un fichier XML RDF à l'aide de go

WBOY
Libérer: 2024-02-09 18:09:23
avant
529 Les gens l'ont consulté

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

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!

Contenu de la question

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">
   ......
Copier après la connexion

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 ?

Solution de contournement

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 RDFFullModel 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"`
}
Copier après la connexion

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"`
        ...
}
Copier après la connexion

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!

Étiquettes associées:
source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal