Wie gehe ich mit unbekannten XML-Attributen beim Unmarshalling in Go um?

Linda Hamilton
Freigeben: 2024-11-23 12:20:11
Original
906 Leute haben es durchsucht

How to Handle Unknown XML Attributes During Unmarshalling in Go?

Unmarshalling von XML-Attributen mit unbekannten Größen mit Golang

In Golang umfasst das Unmarshalling von XML das Parsen von XML-Daten in eine Struktur, was eine bequeme Datenbearbeitung ermöglicht und Abrufen. Bestimmte Szenarien erfordern jedoch die Behandlung unerwarteter XML-Attribute, bei denen die Attributnamen und -werte von Instanz zu Instanz unterschiedlich sein können.

Das Paket „encoding/xml“ bietet Unterstützung für das Unmarshalling von XML-Elementen mit dynamischen Attributen über xml:“,any ,attr“-Anmerkung. Diese Funktion ermöglicht die Sammlung aller Attribute in einem Slice von xml.Attr innerhalb der Struktur.

Um diese Funktion zu veranschaulichen, betrachten Sie den folgenden Code:

package main

import (
    "encoding/xml"
    "fmt"
)

func main() {
    var v struct {
        Attributes []xml.Attr `xml:",any,attr"`
    }

    data := `<TAG ATTR1="VALUE1" ATTR2="VALUE2" />`

    err := xml.Unmarshal([]byte(data), &v)
    if err != nil {
        panic(err)
    }
    fmt.Println(v.Attributes)
}
Nach dem Login kopieren

Bei der Ausführung wird dieser Code ausgeführt Geben Sie Folgendes aus:

[{ATTR1 VALUE1} {ATTR2 VALUE2}]
Nach dem Login kopieren

Jeder Eintrag im Attributsegment stellt ein Attribut dar, bestehend aus seinem Namen (z. B. „ATTR1“) und seinem Wert (z. B. „VALUE1“).

Diese Erweiterung ermöglicht Entwicklern die Arbeit mit XML-Dokumenten, die unbekannte oder dynamische Attribute enthalten, was Go zu einem noch vielseitigeren Tool für die XML-Verarbeitung macht.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit unbekannten XML-Attributen beim Unmarshalling in Go um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage