xml - go 1.11.2 xml 意外的 EOF

标签 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

最佳答案

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

关于xml - go 1.11.2 xml 意外的 EOF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53834441/

相关文章:

java - 根据 xml 模式验证 xml 文件

xml - 如何将.mat文件转换为.xml文件?

go - 对 Go 中的 Locks/Mutex 感到困惑

android - 如何旋转ImageView并自动调整其大小?

xml - 使用 powershell 编辑 XML

xml - 解析xml中的重复字段

Golang,导入csv并将其转换为 map

go - 使用 mgo.Marshal() 编码指针

java - 在java中创建Xml fastxml

xml - 解码包含混合内容的 XML 标签(例如 CDATA、其他标签)