登录
首页 >  Golang >  Go问答

如何在XML中禁止自动生成的标签?

来源:stackoverflow

时间:2024-02-25 13:03:26 354浏览 收藏

你在学习Golang相关的知识吗?本文《如何在XML中禁止自动生成的标签?》,主要介绍的内容就涉及到,如果你想提升自己的开发能力,就不要错过这篇文章,大家要知道编程理论基础和实战操作都是不可或缺的哦!

问题内容

我正在尝试在 go 下实现最初用 fortran 编写的 xml 格式。格式已经指定,因此我无法随意更改标准。不幸的是,该格式包含未包含在 xml 标记中的数据,因此我想禁止 xml.marshal 提供的自动标记创建。

我已经研究了与编组相关的所有标准选项,如以下文档所述:https://golang.org/pkg/encoding/xml/

默认情况下,编组将使用结构变量名称,该名称可以由 xml: 定义覆盖。据我所知,没有任何定义可以抑制标签名称。

type sao_frequency_list struct {
    type string     `xml:",attr"`
    sigfig int      `xml:",attr"`
    units string        `xml:",attr"`
    description string  `xml:",attr"`
    frequencies string  `xml:""`
}

我希望 xml 输出如下:


    3.7 3.8
"

默认情况下 xml.marshalindent(..) 产生:


     3.7 3.8

解决方案


您可以使用 ,chardata 修饰符来指示结构成员的值应用作 xml 元素的字符数据。对于您的示例,这将是:

type FrequencyList struct {
    ...
    Frequencies string  `xml:",chardata"`
}

您可以在此处尝试使用此更改的示例:https://play.golang.org/p/oBa8HuE-57d

好了,本文到此结束,带大家了解了《如何在XML中禁止自动生成的标签?》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>