Golang での XML 要素のアンマーシャリングを理解する
XML 要素を Go 構造体にアンマーシャリングするのは簡単ですが、特定の側面については説明が必要な場合があります。この記事では、属性と浮動小数点値を使用した XML 要素のアンマーシャリングの詳細について説明します。
構造体とアンマーシャリング
XML をアンマーシャリングするには、対応する Go 構造体を定義する必要があります。 。 XML 要素の属性と値は、構造体のフィールドにマップされます。たとえば、次のコードは、
<code class="go">type ThingElem struct { Prop int `xml:"prop,attr"` Value float // ??? }</code>
ただし、XML 要素には浮動小数点値が含まれているため、現在、Value フィールドにその型がありません。
値を使用して浮動小数点を非整列化する値
浮動小数点値をアンマーシャリングするには、Value アノテーションを使用できます。これは、アンマーシャラーに
<code class="go">type ThingElem struct { Prop int `xml:"prop,attr"` Value float64 // Use float64 for float value }</code>
XMLName とアンマーシャリング
XMLName フィールドは、構造体に関連付けられた XML 要素名を指定するために使用されます。一般に、XMLName を使用する必要があるのは、どの要素を構造体にマップするかを決定する際にあいまいさがある場合のみです。この場合、あいまいさはないため、XMLName を使用する必要はありません。
Struct のラップ
必要に応じて、ThingElem 構造体を別の構造体でラップできます。ルート要素を処理するには:
<code class="go">type ThingWrapper struct { T ThingElem `xml:"thing"` }</code>
このラッパーは、便宜上 ThingElem 構造体要素をグループ化する方法を提供します。
サンプル XML
アンマーシャリング プロセスを示します。ここでは、指定した XML の例を示します。
<code class="xml"><thing prop="1"> 1.23 </thing> <thing prop="2"> 4.56 </thing></code>
ThingElem 構造体を使用し、上記のガイドラインに従うことで、この XML を Go 構造に正常にアンマーシャリングできるはずです。
以上がGolang で属性と浮動小数点値を使用して XML 要素をアンマーシャリングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。