去1.11.2 xml意外的EOF

时间:2018-12-18 13:46:34

标签: xml go

我想检查提交的xml文件是否是有效的xml,所以我检查它是否可以解析。我是这样的:

const EmptyXml = `<?xml xmlns="http://www.w3.org/1999/xhtml"?>`

func CanParse(xmlData string) (bool, error) {
    if strings.TrimSpace(xmlData) == "" {
        return false, nil
    }
    type Tag struct {
        XMLName xml.Name
        Content string `xml:",innerxml"`
    }
    type Object struct {
        Items []Tag `xml:",any"`
    }
    var o *Object
    err := xml.Unmarshal([]byte(xmlData), &o)
    if err != nil {
        return false, err
    } else {
        return true, nil
    }
}

可悲的是,我遇到一个错误:意外的EOF。 为什么会这样?

实际上,该方法在一个月前就已经生效,并且golang从那时起就没有更新过,所以我仍然要弄清楚该方法的破败之处

https://goplay.space/#YxiyTbq8ww0

1 个答案:

答案 0 :(得分:1)

这意味着它需要一个结束标签。我最近没有做太多XML,但是我认为您要么必须添加结尾</xml>,要么添加问号:<?xml xmlns="http://www.w3.org/1999/xhtml"?>