我想要解组一个看似喜欢的RDF文档:
<?xml version="1.0" encoding="WINDOWS-1252"?>
<rdf:RDF xmlns:owl = "http://www.w3.org/2002/07/owl#"
xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
<!-- other xml element -->
</rdf:RDF>
我使用此类型进行取消购买:
type wsdlDoc struct {
XMLName xml.Name `xml:"rdf:RDF"`
Name string `xml:"grounding:hasAtomicProcessGrounding"`
}
执行此操作的代码片段:
// you should import "github.com/rogpeppe/go-charset/charset"
// and _ "github.com/rogpeppe/go-charset/data"
dec := xml.NewDecoder(file)
dec.CharsetReader = charset.NewReader
var v wsdlDoc
err = dec.Decode(&v)
if err != nil {
panic(err)
}
当我运行代码时,恐慌打印出此错误:
panic: expected element type <rdf:RDF> but have <RDF>
如何处理这种解组的情况?
答案 0 :(得分:0)
命名空间用它们的URL表示,并用空格分隔名称,所以你的结构应该更像
type wsdlDoc struct {
XMLName xml.Name `xml:"http://www.w3.org/1999/02/22-rdf-syntax-ns# RDF"`
// ...
}