Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Go中封送xml但忽略空字段_Go - Fatal编程技术网

如何在Go中封送xml但忽略空字段

如何在Go中封送xml但忽略空字段,go,Go,如果我有一个结构,我希望能够使用它(使用编码/xml)对xml中的内容进行Marhsal/Unmarshal,那么我如何不打印空属性呢 package main import ( "encoding/xml" "fmt" ) type MyThing struct { XMLName xml.Name `xml:"body"` Name string `xml:"name,attr"` Street string `xml:"stree

如果我有一个结构,我希望能够使用它(使用编码/xml)对xml中的内容进行Marhsal/Unmarshal,那么我如何打印空属性呢

package main

import (
    "encoding/xml"
    "fmt"
)

type MyThing struct {
    XMLName xml.Name `xml:"body"`
    Name    string   `xml:"name,attr"`
    Street  string   `xml:"street,attr"`
}

func main() {
    var thing *MyThing = &MyThing{Name: "Canister"}
    result, _ := xml.Marshal(thing)
    fmt.Println(string(result))
}
例如见


在上面的操场上,我不想写出我的空街属性;我该怎么做?

街道
字段中使用
省略空
标志

发件人:

  • 带有包含“ompitempty”选项的标记的字段将被忽略 如果字段值为空。空值为false、0或任意值 零指针或接口值,以及任何数组、切片、映射或 长度为零的字符串
以您的例子为例:

package main

import (
    "encoding/xml"
    "fmt"
)

type MyThing struct {
    XMLName xml.Name `xml:"body"`
    Name    string   `xml:"name,attr"`
    Street  string   `xml:"street,attr,omitempty"`
}

func main() {
    var thing *MyThing = &MyThing{Name: "Canister"}
    result, _ := xml.Marshal(thing)
    fmt.Println(string(result))
}