Golang で属性と浮動小数点値を使用して XML 要素をアンマーシャリングする方法

Patricia Arquette
リリース: 2024-10-24 04:55:02
オリジナル
562 人が閲覧しました

How to Unmarshal XML Elements with Attributes and Floating-Point Values in Golang?

Golang での XML 要素のアンマーシャリングを理解する

XML 要素を Go 構造体にアンマーシャリングするのは簡単ですが、特定の側面については説明が必要な場合があります。この記事では、属性と浮動小数点値を使用した XML 要素のアンマーシャリングの詳細について説明します。

構造体とアンマーシャリング

XML をアンマーシャリングするには、対応する Go 構造体を定義する必要があります。 。 XML 要素の属性と値は、構造体のフィールドにマップされます。たとえば、次のコードは、 を表す struct ThingElem を定義します。 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 サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!