如何在Go中封送xml但忽略空字段
如果我有一个结构,我希望能够使用它(使用编码/xml)对xml中的内容进行Marhsal/Unmarshal,那么我如何不打印空属性呢如何在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
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))
}