>  기사  >  백엔드 개발  >  Go에서 태그를 닫지 않고 XML 요소를 만드는 방법은 무엇입니까?

Go에서 태그를 닫지 않고 XML 요소를 만드는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-17 03:02:03462검색

How to Create XML Elements without Closing Tags in Go?

Go에서 닫는 태그 없이 XML 요소 만들기

이 시나리오에는 중첩된 요소가 있는 XML 봉투를 나타내는 중첩된 Go 구조체가 있습니다. .

// TierRequest is the outer most XML envelope of soap request
type TierRequest struct {
    XMLName   xml.Name `xml:"soapenv:Envelope"`
    NsEnv     string   `xml:"xmlns:soapenv,attr"`
    NsType    string   `xml:"xmlns:typ,attr"`
    Header    string   `xml:"soapenv:Header"`
    Body      TierBody `xml:"soapenv:Body"`
}

// TierBody is an emtpy container with the GetCollectorProfile struct
type TierBody struct {
    GetCollectorProfiles GetCollectorProfile `Collectorxml:"typ:GetCollectorProfileRequest"`
}

// GetCollectorProfile struct has the context and collector number
type GetCollectorProfile struct {
    Contexts CollectorContext `xml:"typ:Context"`
    Number   int              `xml:"typ:CollectorNumber"`
}

// CollectorContext contanins a few variables as attributes
type CollectorContext struct {
    Channel  string `xml:"Channel,attr"`
    Source   string `xml:"Source,attr"`
    Language string `xml:"LanguageCode,attr"`
}

encoding/xml을 사용하여 이 구조체를 XML로 마샬링하지만 비누펜v:Header 및 typ:Context에 대한 닫는 태그를 제거하여 .

빈 요소 태그는 내용이 없는 요소의 종료 태그와 기능적으로 동일하므로 이 두 형식 사이에는 XML 수준 차이가 없습니다. 즉, XML의 내용은 두 경우 모두 동일합니다.

<soapenv:Header></soapenv:Header>
<soapenv:Header/>

따라서 표준 XML을 사용하여 빈 요소 태그와 종료 태그의 사용을 제어하는 ​​것은 불가능합니다. 기술.

위 내용은 Go에서 태그를 닫지 않고 XML 요소를 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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