>백엔드 개발 >Golang >Go에서 동적 이름을 사용하여 XML 요소를 어떻게 마샬링할 수 있나요?

Go에서 동적 이름을 사용하여 XML 요소를 어떻게 마샬링할 수 있나요?

Barbara Streisand
Barbara Streisand원래의
2024-11-22 18:13:13696검색

How Can I Marshal XML Elements with Dynamic Names in Go?

Golang에서 동적 이름을 사용하여 XML 요소 마샬링

Go 구조에서 XML 문서를 구성하는 작업은 특히 처리할 때 문제가 될 수 있습니다. 다양한 요소 이름을 사용합니다. 질문이 생깁니다. XML 마샬링 프로세스 중에 동적 요소 이름을 허용하는 Go 구조체를 정의할 수 있습니까?

XMLName 및 동적 요소 이름

Go 문서 구조체의 XMLName 필드는 문자열이 아닌 xml.Name 유형이어야 함을 나타냅니다. 이 구조체에는 "Space"와 "Local"이라는 두 개의 필드가 포함되어 있습니다. 동적 요소 이름을 설정하려면 xml.Name 유형 내에서 "로컬" 필드를 수정합니다.

type Person struct {
    XMLName xml.Name
    E1 string `xml:"ELEM1"`
    // ...
}

이 예에서는 XMLName.Local에 저장된 값을 기반으로 요소 이름이 "Person" 또는 "Sender"인 구조체가 있습니다. field.

import (
    "encoding/xml"
    "fmt"
)

type Person struct {
    XMLName xml.Name
    E1 string `xml:"ELEM1"`
    // ...
}

func main() {
    person := Person{XMLName: xml.Name{Local: "Person"}, E1: "Value1"}
    sender := Person{XMLName: xml.Name{Local: "Sender"}, E1: "Value1"}

    // Marshal the struct into XML
    personXML, _ := xml.Marshal(person)
    senderXML, _ := xml.Marshal(sender)

    fmt.Println(string(personXML))
    fmt.Println(string(senderXML))
}

이 예는 두 개의 서로 다른 XML 문서를 생성합니다. 하나는 요소 이름이 "Person"이고 다른 하나는 요소 이름이 "Sender"입니다.

Playground 예제< ;/h3>

이 예제의 대화형 버전을 보려면 Go Playground를 방문하세요. http://play.golang.org/p/bzSutFF9Bo

위 내용은 Go에서 동적 이름을 사용하여 XML 요소를 어떻게 마샬링할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.