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 중국어 웹사이트의 기타 관련 기사를 참조하세요!