> 백엔드 개발 > Golang > Go에서 태그를 닫지 않고 XML 요소를 어떻게 생성합니까?

Go에서 태그를 닫지 않고 XML 요소를 어떻게 생성합니까?

Mary-Kate Olsen
풀어 주다: 2024-11-19 17:35:02
원래의
403명이 탐색했습니다.

How do you create XML elements without closing tags in Go?

닫는 태그 없이 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 관점에서 관련이 없습니다.

태그 형식 선택

사용되는 태그 형식을 제어하려면 , 데이터를 XML이 아닌 텍스트로 처리합니다. 그러나 이러한 구별은 실질적인 의미가 없으므로 일반적으로 걱정할 필요가 없습니다.

역사적 참고

오래된 권장 사항에 따르면 빈 요소 태그를 사용하는 것이 좋습니다. EMPTY로 선언된 요소에만 적용됩니다. 그러나 이 권장 사항은 주로 SGML과의 상호 운용성을 위한 것이며 대부분의 최신 XML 애플리케이션에는 적합하지 않습니다.

위 내용은 Go에서 태그를 닫지 않고 XML 요소를 어떻게 생성합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿