如何使用 go 处理多个 xml API 响应结果?

问题描述

处理一个xml API响应结果,需要捕获多个case。对于成功案例和失败案例,我可以定义 2 个结构来处理它们。来源为:go playground

如果响应数据有很多结果,而且它们没有相同的xml结构,我们可以在go中定义所有的struct类型。但是有没有一种简单的方法来捕捉它的数据?

我发现 go 的 xml UnmarshalXML 方法可以重写 xml 数据。 Package xml 但是使用它需要先设置为特殊且唯一的结构体:

func (r *PostSuccessResponse) UnmarshalXML(d *xml.Decoder,start xml.StartElement) error {

    return nil
}

是否可以使用 startElement.Name.Local 遍历所有响应 xml 数据以检查它具有哪些元素,然后使用哪个 go 结构来处理?如如果找到Fault则使用PostFailureResponse结构体,如果找到return则使用PostSuccessResponse结构体。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)