Table des matières
Contenu de la question
Solution de contournement
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

Feb 09, 2024 pm 06:09 PM
go语言 bibliothèque standard

如何使用 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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quels sont les avantages du framework Golang ? Quels sont les avantages du framework Golang ? Jun 06, 2024 am 10:26 AM

Avantages du framework Golang Golang est un langage de programmation simultanée hautes performances particulièrement adapté aux microservices et aux systèmes distribués. Le framework Golang facilite le développement de ces applications en fournissant un ensemble de composants et d'outils prêts à l'emploi. Voici quelques-uns des principaux avantages du framework Golang : 1. Hautes performances et concurrence : Golang lui-même est connu pour ses hautes performances et sa concurrence. Il utilise des goroutines, un mécanisme de thread léger qui permet l'exécution simultanée de code, améliorant ainsi le débit et la réactivité des applications. 2. Modularité et réutilisabilité : le framework Golang encourage la modularité et le code réutilisable. En divisant l'application en modules indépendants, vous pouvez facilement maintenir et mettre à jour le code

Comment fonctionnent les dépendances des packages dans Go ? Comment fonctionnent les dépendances des packages dans Go ? Jun 01, 2024 pm 10:40 PM

En langage Go, les dépendances des packages sont gérées via des instructions d'importation. Il existe deux types de dépendances de packages dans le langage Go : les dépendances directes et les dépendances indirectes. Le système de modules Go gère les dépendances des packages via l'outil gomod, y compris des tâches telles que la modularisation, le contrôle de version des dépendances, ainsi que le téléchargement et l'installation des dépendances.

Comment implémenter un modèle producteur-consommateur à l'aide de pipelines en langage Go ? Comment implémenter un modèle producteur-consommateur à l'aide de pipelines en langage Go ? Jun 02, 2024 pm 03:28 PM

Le modèle producteur-consommateur permet aux producteurs de mettre des données en cache, tandis que les consommateurs peuvent simultanément en extraire des données pour les traiter. Dans Go, les tubes sont un mécanisme de communication qui implémente ce modèle : Créez un tube : make(chanT), où T est le type de données de transfert. Fonction producteur : mettre les données dans un tube (ch

Comment créer des tâches parallèles à l'aide de pipelines dans Go ? Comment créer des tâches parallèles à l'aide de pipelines dans Go ? Jun 04, 2024 pm 02:46 PM

Les tubes sont un mécanisme de communication sans tampon qui peut être utilisé pour créer des tâches parallèles : Créer un tube : ch:=make(chanint) Envoyer des données : ch

Comment transmettre des données à l'aide de tubes en langage Go ? Comment transmettre des données à l'aide de tubes en langage Go ? Jun 01, 2024 pm 04:15 PM

Le pipeline du langage Go est utilisé pour transférer des données entre les goroutines et peut être utilisé selon les étapes suivantes : Créer un pipeline : make(chanint) Envoyer des données : canal&lt;-data Recevoir des données : data:=&lt;-channel Créer un canal tampon : make(chanint,10 ) (la taille du tampon est de 10) Cas pratique : calculez simultanément la somme des carrés entiers et utilisez des tuyaux pour transférer les résultats dans goroutine

Techniques d'optimisation des performances dans la programmation simultanée Go Techniques d'optimisation des performances dans la programmation simultanée Go Jun 05, 2024 pm 12:09 PM

Les conseils d'optimisation des performances pour la programmation simultanée Go incluent l'utilisation d'un pool Goroutine pour éviter les frais généraux liés à la création et à la destruction de goroutines. Utilisez des canaux pour transmettre des données au lieu de la mémoire partagée pour éviter les courses aux données. Évitez d'utiliser des verrous lourds et envisagez d'utiliser des structures de données sans verrou pour réduire les conflits. Exécutez des tâches en parallèle et profitez pleinement des fonctionnalités de concurrence de Go.

Comment déclarer un colis dans Go ? Comment déclarer un colis dans Go ? Jun 02, 2024 pm 10:09 PM

Étapes pour déclarer un package Go : utilisez l'instruction package, suivie du nom du package (doit être cohérent avec le nom du fichier source), pour déclarer le package. Lors de l'importation d'un package, utilisez l'instruction import, suivie du nom du package. Lorsque vous utilisez des symboles d'un package, vous devez utiliser le préfixe du package.

Comment utiliser GO ou Rust pour appeler les scripts Python pour réaliser une véritable exécution parallèle? Comment utiliser GO ou Rust pour appeler les scripts Python pour réaliser une véritable exécution parallèle? Apr 01, 2025 pm 11:39 PM

Comment utiliser GO ou Rust pour appeler les scripts Python pour réaliser une véritable exécution parallèle? Récemment, j'ai utilisé Python ...

See all articles