닫는 태그 없이 XML 요소 생성
다음 중첩 Go 구조체를 고려하세요.
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"` // TierBody is an empty container with the GetCollectorProfile struct Body TierBody `Collectorxml:"typ:GetCollectorProfileRequest"` } type TierBody struct { GetCollectorProfiles GetCollectorProfile `Collectorxml:"typ:GetCollectorProfileRequest"` } type GetCollectorProfile struct { Contexts CollectorContext `xml:"typ:Context"` Number int `xml:"typ:CollectorNumber"` } type CollectorContext struct { Channel string `xml:"Channel,attr"` Source string `xml:"Source,attr"` Language string `xml:"LanguageCode,attr"` }
초기화 및 마샬링되는 경우 인코딩/xml을 사용하면 다음이 생성됩니다. 출력:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http:/www.yahoo.com/tp/ets/2008/04/01/collector/types"> <soapenv:Header></soapenv:Header> <soapenv:Body> <GetCollectorProfiles> <typ:Context Channel="WEB" Source="WEB" LanguageCode="en-CA"></typ:Context> <typ:CollectorNumber>50000</typ:CollectorNumber> </GetCollectorProfiles> </soapenv:Body> </soapenv:Envelope>
빈 요소 태그와 내용이 없는 요소
빈 요소 태그 간의 차이점(예:
태그 형식 선택
사용되는 태그 형식을 제어하려면 , 데이터를 XML이 아닌 텍스트로 처리합니다. 그러나 이러한 구별은 실질적인 의미가 없으므로 일반적으로 걱정할 필요가 없습니다.
역사적 참고
오래된 권장 사항에 따르면 빈 요소 태그를 사용하는 것이 좋습니다. EMPTY로 선언된 요소에만 적용됩니다. 그러나 이 권장 사항은 주로 SGML과의 상호 운용성을 위한 것이며 대부분의 최신 XML 애플리케이션에는 적합하지 않습니다.
위 내용은 Go에서 태그를 닫지 않고 XML 요소를 어떻게 생성합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!