Heim > Backend-Entwicklung > Golang > So lesen Sie XML-Namespace-Attribute in einer RDF-XML-Datei mit go

So lesen Sie XML-Namespace-Attribute in einer RDF-XML-Datei mit go

WBOY
Freigeben: 2024-02-09 18:09:23
nach vorne
521 Leute haben es durchsucht

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

Der PHP-Editor Strawberry führt Sie in die Verwendung der Go-Sprache zum Lesen von XML-Namespace-Attributen in RDF-XML-Dateien ein. Bei der Verarbeitung von RDF-XML-Dateien müssen wir häufig XML-Namespace-Attribute lesen, um die Elemente und Attribute in der Datei korrekt zu analysieren. Die Go-Sprache bietet eine einfache und effiziente Möglichkeit, diese Aufgabe zu erledigen. Durch die Verwendung des Pakets „encoding/xml“ in der Standardbibliothek können wir die XML-Namespace-Attribute in RDF-XML-Dateien problemlos lesen und für die anschließende Datenverarbeitung und -analyse verwenden. In diesem Artikel stellen wir vor, wie Sie mithilfe der Go-Sprache Code schreiben, um diese Funktion zu erreichen, und stellen einige Beispielcodes als Referenz bereit. Egal, ob Sie Anfänger oder erfahrener Go-Sprachentwickler sind, dieser Artikel liefert Ihnen wertvolle Informationen und praktische Tipps. Lasst uns beginnen!

Frageninhalt

Ich versuche, die folgende XML-Datei zu analysieren:

<?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">
   ......
Nach dem Login kopieren

Mit der Go-Methode xml.NewDecoder(file).Decode(&model). Ich kann alle „FullModel“ und alle folgenden Elemente abrufen, aber ich kann nicht herausfinden, wie ich diese Namespace-String-Werte erhalten kann: xmlns:rdf, xmlns:eu...

Mein Code: https://go.dev/play/p/qF_2er47_3R

Stimmt etwas mit meinem Code nicht?

Workaround

Um Go-Strukturen aus XML zu generieren, können Sie einen Generator wie miku/zek verwenden. Es gibt auch eine Online-Version. Dieser Code sollte wie erwartet funktionieren: https://www.php.cn/link/486d016ed2f8a1de28c4b664be01f35f

Ihr Wurzelknoten ist RDFFullModel seine untergeordneten Knoten, aber wie Sie es beschreiben FullModel 与结构中的 RDF Auf Augenhöhe.

Wenn Sie einen Namen für den Wurzelknoten festlegen müssen, können Sie den Strukturfeldtyp xml.Name verwenden. Laut der Dokumentation von encoding/xml:

Ihr 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"`
}
Nach dem Login kopieren

Generierte Struktur:

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"`
        ...
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo lesen Sie XML-Namespace-Attribute in einer RDF-XML-Datei mit go. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:stackoverflow.com
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage