我尝试解组一个我想要省略空元素的xml数组。
我希望以下代码打印2,因为第二个bar元素为空。而是打印3。
package main
import (
"fmt"
"encoding/xml"
"bytes"
)
type foo struct {
Bars []string `xml:"bar,omitempty"`
}
func main() {
xmlStr := `
<foo>
<bar>1</bar>
<bar></bar>
<bar>2</bar>
</foo>`
var f foo
xml.NewDecoder(bytes.NewBufferString(xmlStr)).Decode(&f)
fmt.Println(len(f.Bars))
}
答案 0 :(得分:0)
除非你想进入xml.Unmarshaler
黑魔法,否则我建议你去做
func compact(ss []string) []string {
res := make([]string, 0, len(ss))
for _, s := range ss {
if s != "" {
res = append(res, s)
}
}
return res
}