Inhaltsverzeichnis
Frageninhalt
Workaround
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

Feb 09, 2024 pm 06:09 PM
go语言 Standardbibliothek

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

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

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So verwenden Sie std:: in C++ So verwenden Sie std:: in C++ May 09, 2024 am 03:45 AM

So verwenden Sie std:: in C++

Was bedeutet Primzahl in C++? Was bedeutet Primzahl in C++? May 07, 2024 pm 11:33 PM

Was bedeutet Primzahl in C++?

Was bedeutet Konfiguration in Java? Was bedeutet Konfiguration in Java? May 07, 2024 am 02:39 AM

Was bedeutet Konfiguration in Java?

So berechnen Sie den absoluten Wert in C++ So berechnen Sie den absoluten Wert in C++ May 06, 2024 pm 06:21 PM

So berechnen Sie den absoluten Wert in C++

Was bedeutet Fabs in C++? Was bedeutet Fabs in C++? May 08, 2024 am 01:15 AM

Was bedeutet Fabs in C++?

_komplexe Verwendung in C-Sprache _komplexe Verwendung in C-Sprache May 08, 2024 pm 01:27 PM

_komplexe Verwendung in C-Sprache

Was bedeutet min in C++? Was bedeutet min in C++? May 08, 2024 am 12:51 AM

Was bedeutet min in C++?

C++-Smartpointer: eine umfassende Analyse ihres Lebenszyklus C++-Smartpointer: eine umfassende Analyse ihres Lebenszyklus May 09, 2024 am 11:06 AM

C++-Smartpointer: eine umfassende Analyse ihres Lebenszyklus

See all articles