XML 配列を Go 構造体にアンマーシャリングする場合、最初の要素のみを取得できます。この問題を回避して配列全体を取得するには、次の手順に従います。
複数の反復による XML デコード:
XML 文字列内に複数の XML エンティティが存在します。これらのエンティティを正しくアンマーシャリングするには、xml.Decoder が必要です。 d.Decode を複数回使用して、個々のエンティティを取得します。
コード例:
<code class="go">d := xml.NewDecoder(bytes.NewBufferString(VV)) for { var t HostSystemIdentificationInfo err := d.Decode(&t) if err == io.EOF { // End of file encountered break } if err != nil { // Handle any decoding errors log.Fatal(err) } fmt.Println(t) // Each element will be printed }</code>
XML サンプル:
<code class="xml"><HostSystemIdentificationInfo> <identifierValue>unknown</identifierValue> <identifierType> <label>Asset Tag</label> <summary>Asset tag of the system</summary> <key>AssetTag</key> </identifierType> </HostSystemIdentificationInfo> <HostSystemIdentificationInfo> <identifierValue>Dell System</identifierValue> <identifierType> <label>OEM specific string</label> <summary>OEM specific string</summary> <key>OemSpecificString</key> </identifierType> </HostSystemIdentificationInfo></code>
これらの手順に従うことで、XML 配列全体を Go 構造体にアンマーシャリングし、すべての要素を意図したとおりに取得できます。
以上がXML 配列全体を Go 構造体にアンマーシャルする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。