Table des matières
Définir les structures avec des balises XML
Analyse xml d'une chaîne
Analyser XML à partir d'un fichier
Manipuler les listes et les éléments répétés
Conseils et gotchas
Maison développement back-end Golang Comment analyser les données XML dans Go

Comment analyser les données XML dans Go

Aug 05, 2025 pm 07:24 PM
xml go

Les données XML d'analyse sont très simples en Go, utilisez simplement le package d'encodage / XML intégré. 1. Définissez une structure avec une balise XML pour mapper des éléments et des attributs XML, tels que les sous-éléments correspondant à XML: "Name", XML: "Contact> Email" Gire Nest, et XML: "ID, AST" Reads Attributs; 2. Utilisez XML.unmarshal pour analyser les chaînes XML en structures; 3. Pour les fichiers, ouvrez-les avec OS.Open et décodez-les via XML.NewDecoder, qui convient au traitement de streaming de fichiers grand; 4. Lors du traitement des éléments en double, utilisez des champs de tranche dans la structure, tels que [] personne; 5. Faites attention aux noms d'éléments Sensibilité aux cas, traitement des espaces de noms, champs facultatifs et capture d'éléments inconnus. Après avoir modélisé correctement la structure, GO peut compléter efficacement l'analyse XML, et il est recommandé d'utiliser UNMarshal pour les petites données et le décodeur pour les mégadonnées.

Comment analyser les données XML dans Go

Analyser les données XML dans GO est simple grâce au package encoding/xml intégré. Que vous lisiez à partir d'un fichier, d'une chaîne ou d'une réponse HTTP, GO fournit des moyens propres de Unmarshal XML en structures. Voici comment le faire efficacement.

Comment analyser les données XML dans Go

Définir les structures avec des balises XML

Pour analyser le XML, vous définissez d'abord les structures GO qui reflètent la structure du XML. Utilisez des balises de structure avec la touche xml pour mapper les éléments XML et les attributs aux champs de structure.

 Type personne struct {
    Xmlname xml.name `xml:" personne "`
    Nom String `xml:" Name "`
    Âge int `xml:" âge "`
    Chaîne de messagerie `XML:" Contact> Email "` // élément imbriqué
    Chaîne de téléphone `XML:" Contact> Téléphone "`
    String id `xml:" id, attr "` // attribut
}

Dans cet exemple:

Comment analyser les données XML dans Go
  • xml:"name" est à la recherche d'un élément enfant <name>...</name>
  • xml:"contact>email" perd dans un <contact><email>...</email></contact>
  • XML <person> "ID id xml:"id,attr"

Analyse xml d'une chaîne

Utilisez xml.Unmarshal pour convertir les données XML en une structure:

 package principal

importer (
    "Encodage / XML"
    "FMT"
    "enregistrer"
)

func main () {
    Données: = `
    <personne id = "123">
        <nom> John Doe </name>
        <âge> 30 </gest>
        <contact>
            <e-mail> john@example.com </ e-mail>
            <phone> 555-1234 </phone>
        </packing>
    </ponge> `

    Var Person
    err: = xml.unmarshal ([] octet (données) et personne)
    Si err! = Nil {
        log.fatal (err)
    }

    fmt.printf ("% v \ n", personne)
    // Sortie: {XMLNAME: {Space: Local: Person} Nom: John Doe Âge: 30 Courriel: John@example.com Téléphone: 555-1234 ID: 123}
}

Analyser XML à partir d'un fichier

Pour lire XML à partir d'un fichier, ouvrez-le et transmettez le lecteur de fichier à xml.NewDecoder :

Comment analyser les données XML dans Go
 package principal

importer (
    "Encodage / XML"
    "OS"
    "enregistrer"
)

func main () {
    fichier, err: = os.open ("data.xml")
    Si err! = Nil {
        log.fatal (err)
    }
    Defer file.close ()

    Var Person
    décodeur: = xml.newdecoder (fichier)
    err = decoder.decode (& personne)
    Si err! = Nil {
        log.fatal (err)
    }

    fmt.printf ("% v \ n", personne)
}

L'utilisation xml.NewDecoder est économe en mémoire pour les fichiers volumineux car il analyse progressivement.


Manipuler les listes et les éléments répétés

Pour XML avec des éléments répétés (comme une liste d'utilisateurs), utilisez des tranches dans votre structure:

 Tapez les utilisateurs struct {
    Xmlname xml.name `xml:" utilisateurs "`
    Personnes [] personne `xml:" personne "`
}

Avec XML comme:

 <utilisateurs>
    <personne id = "1"> <nom> Alice </name> <age> 25 </ge> </som>
    <personne id = "2"> <nom> bob </name> <age> 28 </ge> </som>
</ulter>

Vous pouvez le désarracher de la même manière:

 Utilisateurs des utilisateurs de Var
err: = xml.unmarshal ([] octet (données) et utilisateurs)
Si err! = Nil {
    log.fatal (err)
}

Maintenant users.People contiendra deux entrées Person .


Conseils et gotchas

  • Sensibilité à la caisse : les noms d'éléments XML sont sensibles à la casse. Assurez-vous que vos balises de structure correspondent exactement.
  • Manipulation de l'espace de noms : Si XML utilise des espaces de noms, vous devrez peut-être les gérer manuellement à l'aide xml.Name ou de prétraitement.
  • Champs facultatifs : utilisez des points ou une logique en forme omitempty (bien qu'elle soit moins courante dans XML que JSON).
  • Éléments inconnus : vous pouvez utiliser xml:",any" pour capturer des éléments enfants inconnus si nécessaire.

L'analyse XML dans GO est propre et efficace lorsque vous modélisez correctement vos structures. Définissez simplement la structure, utilisez des balises appropriées et choisissez entre Unmarshal pour les petites données et xml.Decoder pour les flux ou les fichiers volumineux.

Fondamentalement, ce n'est pas compliqué - faites simplement attention à la nidification, aux attributs et aux types.

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

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.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Porce de variable PHP expliquée
1 Il y a quelques mois By 百草
Commentant le code en php
4 Il y a quelques semaines By 百草
Conseils pour écrire des commentaires PHP
4 Il y a quelques semaines By 百草
<🎜>: Grow A Garden - Guide complet des marchands itinérants
3 Il y a quelques semaines By Jack chen

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)

Sujets chauds

Tutoriel PHP
1510
276
Quelles sont les meilleures pratiques pour vous connecter? Quelles sont les meilleures pratiques pour vous connecter? Aug 04, 2025 pm 04:48 PM

En utilisant la journalisation structurée, en ajoutant du contexte, en contrôlant les niveaux de journal, en évitant les données sensibles à la journalisation, en utilisant des noms de champ cohérents, en enregistrant correctement les erreurs, en prenant en compte les performances, en surveillant les journaux et des configurations unificatrices de manière centralisée sont les meilleures pratiques pour obtenir une journalisation efficace. Tout d'abord, les journaux structurés au format JSON (comme l'utilisation d'Uber-GO / ZAP ou de RS / Zerolog) facilitent l'analyse de la machine et l'intégration de wapitis, de la forme de données et d'autres outils; Deuxièmement, la traçabilité du journal est améliorée en demandant des informations de contexte telles que l'ID et l'ID utilisateur, et peut être injectée via Context.Context ou HTTP Middleware; Troisièmement, utilisez le débogage, les informations, les avertissements, les niveaux d'erreur raisonnablement et fonctionnent via des variables environnementales.

Comment fermer gracieusement un service GO? Comment fermer gracieusement un service GO? Aug 05, 2025 pm 08:21 PM

Usesignal.notify () TolistenForsigint / SigterandTriggersHutdown; 2.RunthehttpServerinagoroutineandblockuntilasignalisreceived; 3.CallServer.Shutdown () avec un aontextTimeoutTostopaccepingEptureNewrequestSallowine-FLIMESTOSTOCLEM

Comment obtenir l'heure actuelle en Go Comment obtenir l'heure actuelle en Go Aug 06, 2025 am 11:28 AM

UseTime.now () togetTheCurrentLocaltimeAsatime.TimeObject; 2.FormatTheTimeusingtheformatmethodwithlayoutslik "2006-01-0215: 04: 05"; 3.GetUtCtimeByCallingUtc () onTheResultime.now (); 4.xtractconntslikeliseyyar, mois, DayUsiTheThoDs

Analyse des documents XML en parallèle pour améliorer les performances Analyse des documents XML en parallèle pour améliorer les performances Aug 05, 2025 am 05:23 AM

L'utilisation de l'analyse parallèle multi-processus des fichiers XML indépendants peut améliorer considérablement les performances. 1. Prioriser ProcessPoolExecutor pour éviter les restrictions GIL; 2. Assurer que les fichiers sont indépendants ou traités en morceaux de fichiers volumineux; 3. Utiliser des bibliothèques d'analyse efficaces telles que LXML; 4. Limiter le numéro de concurrence pour empêcher la surcharge du système; 5. Assurer la tolérance aux défauts par la capture des exceptions et, finalement, atteindre l'analyse parallèle sûre et efficace.

Comment analyser les données XML dans Go Comment analyser les données XML dans Go Aug 05, 2025 pm 07:24 PM

Les données XML d'analyse sont très simples en Go, utilisez simplement le package d'encodage / XML intégré. 1. Définissez une structure avec la balise XML pour mapper des éléments et des attributs XML, tels que XML: "Nom" Eléments enfants correspondants, XML: "Contact> Email" Père la nidification, XML: "ID, AttR" lit Attributs; 2. Utilisez XML.unmarshal pour analyser les chaînes XML en structures; 3. Pour les fichiers, utilisez OS.Open pour les ouvrir et les décoder via XML.NewDecoder, qui convient au traitement en streaming des fichiers volumineux; 4. Lors du traitement des éléments en double, dans la structure

Comment créer et utiliser des types d'erreur personnalisés dans Go Comment créer et utiliser des types d'erreur personnalisés dans Go Aug 11, 2025 pm 11:08 PM

Dans GO, la création et l'utilisation de types d'erreurs personnalisés peuvent améliorer l'expressivité et la débogabilité de la gestion des erreurs. La réponse est de créer une erreur personnalisée en définissant une structure qui implémente la méthode Error (). Par exemple, ValidationError contient des champs de champ et de messages et renvoie les informations d'erreur formatées. L'erreur peut ensuite être renvoyée dans la fonction, détectant des types d'erreur spécifiques via des assertions ou des erreurs de type. Vous pouvez également ajouter des méthodes comportementales telles que les erreurs ISCRITIQUES à personnalisées, qui conviennent aux scénarios qui nécessitent des données structurées, un traitement différencié, une exportation de bibliothèque ou une intégration API. Dans des cas simples, des erreurs.

Comment profitez-vous du code GO pour les performances? Comment profitez-vous du code GO pour les performances? Aug 05, 2025 am 08:50 AM

L'analyse des performances du code GO peut être implémentée via l'outil PPROF intégré. Tout d'abord, importez le point de terminaison de débogage pour activer le \ _ "net / http / pprof"; 1. Pour les services HTTP, démarrez l'interface PPROF de LocalHost: 6060 dans le programme; 2. Utilisez gotoolpprof http: // localhost: 6060 / debug / pprof / profil? Seconds = 30 pour collecter 30 secondes de données de performance CPU; 3. Analyser l'allocation de la mémoire via Gotoolpprof http: // localhost: 6060 / debug / pprof / tas; 4. Activer la course

Comment transformez-vous une application GO? Comment transformez-vous une application GO? Aug 06, 2025 am 05:52 AM

Cross-compilingaGoapplicationisstraightforwardusingbuilt-insupportviaGOOSandGOARCH.1.SetGOOSforthetargetoperatingsystem(e.g.,linux,windows,darwin).2.SetGOARCHforthetargetarchitecture(e.g.,amd64,arm64).3.Rungobuildwiththesevariables,suchasGOOS=linuxGO

See all articles