You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go语言使用struct生成XML时如何给带属性的节点设置文本值

解决方案

Go标准库的encoding/xml包提供了chardata结构标签,用来指定某个字段的值作为当前XML节点的文本内容输出,你只需要调整Item结构体的定义,再补充对应字段的赋值即可。

修改后完整代码

package main

import (
	"encoding/xml"
	"fmt"
)

type Data struct {
	ItemA string `xml:"item-string"`
	ItemB Item
}

type Item struct {
	XMLName xml.Name `xml:"item-struct"`
	Type    string   `xml:"type,attr"`
	// 新增Content字段,用chardata标签标记为节点文本
	Content string   `xml:",chardata"`
}

func Test() {
	itm := Data{
		ItemA: "good",
		ItemB: Item{
			Type:    "nice",
			// 给文本字段赋值
			Content: "very good",
		},
	}
	output, err := xml.MarshalIndent(&itm, "", "    ")
	if err != nil {
		fmt.Println(err)
	}
	result := string(output)
	fmt.Printf("\n%s\n", result)
}

func main() {
	Test()
}

运行输出效果

<Data>
    <item-string>good</item-string>
    <item-struct type="nice">very good</item-struct>
</Data>

内容的提问来源于stack exchange,提问作者Rolas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 16:54:00