为了账号安全,请及时绑定邮箱和手机立即绑定

如何将空的xmlns=“”添加到请求的结构标记中?

如何将空的xmlns=“”添加到请求的结构标记中?

Go
哔哔one 2022-08-24 10:45:26
你好,我是golang和编程的新手,我有一个新手问题。我无法在谷歌上找到答案。soap 服务器因 gowsdl 生成的代码而失败。但是我添加这个xmlns=“”来验证标签,它的工作原理就像一个魅力。那么我怎么能不通过字符串替换而是习惯性的方式将其添加到标签中呢?服务器不接受<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/"><Body xmlns="http://schemas.xmlsoap.org/soap/envelope/">    <GetCitiesRequest xmlns="http://www.n11.com/ws/schemas">        <auth>                     <<<<<<<<<<<<<<<<------------ fails because no xmlns=""            <appKey>xxx</appKey>            <appSecret>xx</appSecret>        </auth>    </GetCitiesRequest>    </Body></Envelope>服务器接受 <Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">    <Body>        <GetCitiesRequest xmlns="http://www.n11.com/ws/schemas">            <auth xmlns="">                <appKey>[string]</appKey>                <appSecret>[string]</appSecret>            </auth>        </GetCitiesRequest>    </Body></Envelope>im使用快速修复:buffers := new(bytes.Buffer)buffers.WriteString(strings.ReplaceAll(buffer.String(),"<auth>","<auth xmlns=\"\">"))req, err := http.NewRequest("POST", s.url, buffers)我应该添加什么结构标签来查看空的xmlns=“” ?type GetCitiesRequest struct {    XMLName xml.Name `xml:"http://www.n11.com/ws/schemas GetCitiesRequest"`    Auth *Authentication `xml:"auth,omitempty" json:"auth,omitempty"`}type Authentication struct {    AppKey string `xml:"appKey,omitempty" json:"appKey,omitempty"`    AppSecret string `xml:"appSecret,omitempty" json:"appSecret,omitempty"`}阿洛斯我试过了;type Authentication struct {   XMLName xml.Name `xml:""`   AppKey string `xml:"appKey,omitempty" json:"appKey,omitempty"`   AppSecret string `xml:"appSecret,omitempty" json:"appSecret,omitempty"`}   auth := Authentication{AppKey:"secret",AppSecret:"secret"}   auth.XMLName.Local= "auth"   auth.XMLName.Space = ""我也尝试 auth.XMLName.Space = “ ” 空白空间,但xml.marshal将其转换为转义字符,如“&quote,#34”我想了解我如何做到像专业的方式,但不是菜鸟的方式。任何帮助赞赏。谢谢。
查看完整描述

1 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

https://golang.org/pkg/encoding/xml/#Marshal

  • 带有标记“name,attr”的字段将成为 XML 元素中具有给定名称的属性。

  • 带有标记 “,attr” 的字段将成为 XML 元素中具有字段名称的属性。

type Authentication struct {
    Xmlns     string `xml:"xmlns,attr" json:"-"`
    AppKey    string `xml:"appKey,omitempty" json:"appKey,omitempty"`
    AppSecret string `xml:"appSecret,omitempty" json:"appSecret,omitempty"`}

https://play.golang.org/p/iIvlUoaYvgB


查看完整回答
反对 回复 2022-08-24
  • 1 回答
  • 0 关注
  • 79 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信