如何解析只有一个标签的基本 XML 数据
How to parse basic XML data which has one tag
我可以解析复杂的 XML 结果,但我在这个简单的事情上失败了 api 返回像这样的简单答案
xmlFile := <?xml version="1.0" encoding="utf-8" standalone="yes"?><TOKEN>C5F3DCFE370047ECAA9120F4E305B7D2</TOKEN>
我无法解析令牌。我尝试了一切但无法弄清楚。我正在使用这种语法:
s := strings.Split(string(result),">")
s = strings.Split(s[2],"<")
b.Token = s[0]
<?xml version="1.0" encoding="utf-8" standalone="yes"?><TOKEN>C5F3DCFE370047ECAA9120F4E305B7D2</TOKEN>
如何解析这个(还有apireturns<?xml version="1.0" encoding="utf-8" standalone="yes"?><ERROR>a error </ERROR>
信息)
要解组单独的顶级元素,您可以实现自定义 unmarshaler。
type Response struct {
Token string
Error string
}
func (r *Response) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
switch start.Name.Local {
case "TOKEN":
if err := d.DecodeElement(&r.Token, &start); err !=nil {
return err
}
case "ERROR":
if err := d.DecodeElement(&r.Error, &start); err !=nil {
return err
}
}
return nil
}
我可以解析复杂的 XML 结果,但我在这个简单的事情上失败了 api 返回像这样的简单答案
xmlFile := <?xml version="1.0" encoding="utf-8" standalone="yes"?><TOKEN>C5F3DCFE370047ECAA9120F4E305B7D2</TOKEN>
我无法解析令牌。我尝试了一切但无法弄清楚。我正在使用这种语法:
s := strings.Split(string(result),">")
s = strings.Split(s[2],"<")
b.Token = s[0]
<?xml version="1.0" encoding="utf-8" standalone="yes"?><TOKEN>C5F3DCFE370047ECAA9120F4E305B7D2</TOKEN>
如何解析这个(还有apireturns<?xml version="1.0" encoding="utf-8" standalone="yes"?><ERROR>a error </ERROR>
信息)
要解组单独的顶级元素,您可以实现自定义 unmarshaler。
type Response struct {
Token string
Error string
}
func (r *Response) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
switch start.Name.Local {
case "TOKEN":
if err := d.DecodeElement(&r.Token, &start); err !=nil {
return err
}
case "ERROR":
if err := d.DecodeElement(&r.Error, &start); err !=nil {
return err
}
}
return nil
}