如何在Golang中解组XML时获取接口{}中的数据?

如何在Golang中解组XML时获取接口{}中的数据?,go,Go,我试图使用接口{}在golang中封送和解封我的xml。原因是,在调用soap服务器时,我的soap信封的头是相同的,但我希望通过传递不同的结构来传递不同的soap函数。我已经在Playerd中编写了一个示例代码(与soap无关)。我能够用接口{}封送xml,但无法取消封送 这里是链接 请告诉我我做错了什么?由于空接口没有任何可将xml键/值映射到的导出字段,因此无法将其解组到空接口。如果希望共享相同的代码以“动态”处理不同的消息,则应将其存储在字符串或字节数组中(在这种情况下建议使用字节数组)

我试图使用接口{}在golang中封送和解封我的xml。原因是,在调用soap服务器时,我的soap信封的头是相同的,但我希望通过传递不同的结构来传递不同的soap函数。我已经在Playerd中编写了一个示例代码(与soap无关)。我能够用接口{}封送xml,但无法取消封送

这里是链接


请告诉我我做错了什么?

由于空接口没有任何可将xml键/值映射到的导出字段,因此无法将其解组到空接口。如果希望共享相同的代码以“动态”处理不同的消息,则应将其存储在字符串或字节数组中(在这种情况下建议使用字节数组)。然后根据需要处理数据


这真奇怪。我甚至更改了您的代码,使其使用与json编码器相同的方法,其余的代码都是相同的——并且工作得很好。你可以在这里看到我的版本-除了元帅/解封官呼叫@Not_a_Golfer是的,它是一样的。你能给我建议一些其他的方法吗。正如我在问题中所解释的,我需要发送soapxml(WSDL)。在其中,我将创建一个通用的soap信封结构,并在其中创建一个接口{},对于不同的web服务,我将在发送和接收过程中传递该结构(封送/解封)。这里有一个答案,建议使用实际代码进行类似操作:从概念上讲,如果
Msg
接口{}
我不确定
xml
“知道”将
子项
放在其中而不是其他类型——如果类型是静态的
*子项
(请参阅)。这可能是
Decode
/
decodelement
必须考虑的问题:他们可以窥视XML,并根据它看到的标记类型找出要创建的内容。但是,同意将XML解码为事先不知道的类型结构将是一件棘手的事情。not_a_Golfer的JSON示例之所以有效,是因为JSON解码器选择了de错误类型,如
map[string]interface{}
或类似的,当它必须解码到接口{}时。xml解码器的规则非常复杂: