Golang에서 XML 요소 언마샬링 이해
XML 요소를 Go 구조체로 언마샬링하는 것은 간단할 수 있지만 특정 측면에는 설명이 필요할 수 있습니다. 이 문서에서는 속성 및 부동 소수점 값을 사용하여 XML 요소를 역마샬링하는 방법에 대해 자세히 설명합니다.
구조체 및 역마샬링
XML을 역마샬링하려면 해당 Go 구조체를 정의해야 합니다. . XML 요소의 특성과 값은 구조체의 필드에 매핑됩니다. 예를 들어, 다음 코드는
<code class="go">type ThingElem struct { Prop int `xml:"prop,attr"` Value float // ??? }</code>
그러나 XML 요소에는 부동 소수점 값이 포함되어 있으므로 현재 값 필드에 해당 유형이 없습니다.
값을 사용하여 부동 소수점 비정렬화 값
부동 소수점 값을 비정렬화하려면 값 주석을 사용할 수 있습니다. 이는 언마샬러에게
<code class="go">type ThingElem struct { Prop int `xml:"prop,attr"` Value float64 // Use float64 for float value }</code>
XMLName 및 Unmarshaling
XMLName 필드는 구조체와 연결된 XML 요소 이름을 지정하는 데 사용됩니다. 일반적으로 어떤 요소가 구조체에 매핑되어야 하는지 결정하는 데 모호한 경우에만 XMLName을 사용해야 합니다. 이 경우 모호성이 없으므로 XMLName을 사용할 필요가 없습니다.
구조체 래핑
원하는 경우 ThingElem 구조체를 다른 구조체로 래핑할 수 있습니다. 루트 요소를 처리하려면:
<code class="go">type ThingWrapper struct { T ThingElem `xml:"thing"` }</code>
이 래퍼는 편의를 위해 ThingElem 구조체 요소를 그룹화하는 방법을 제공합니다.
샘플 XML
To 다음은 제공한 XML의 예입니다.
<code class="xml"><thing prop="1"> 1.23 </thing> <thing prop="2"> 4.56 </thing></code>
ThingElem 구조체를 사용하고 위의 지침을 따르면 이 XML을 Go 구조로 성공적으로 역마샬링할 수 있습니다.
위 내용은 Golang에서 속성 및 부동 소수점 값을 사용하여 XML 요소를 비정렬화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!