- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在尝试将 Go 结构编码为 Soap-Envelope (xml)。到目前为止,除了一个小错误外,皂体看起来还不错。虽然我的信封应该是这样的:
<SOAP-ENV:Body>
<q3:WMLS_AddToStore xmlns:q3="http://www.foo.abr/message/120">
<WMLtypeIn>param1</WMLtypeIn>
<XMLin>param2</XMLin>
<OptionsIn>param3</OptionsIn>
<CapabilitiesIn>param4</CapabilitiesIn>
</q3:WMLS_AddToStore>
</SOAP-ENV:Body>
我的代码正在生成这个:
<SOAP-ENV:Body>
<q1:WMLS_AddToStore xmlns:q1="http://www.foo.abr/message/120">
<ActionName>
<WMLtypeIn>param1</WMLtypeIn>
<XMLin>param2</XMLin>
<OptionsIn>param3</OptionsIn>
<CapabilitiesIn>param4</CapabilitiesIn>
</ActionName>
</q1:WMLS_AddToStore>
</SOAP-ENV:Body>
注意 ActionName 标签。我想:
删除这个 ActionName 标签
或
将其重命名为 q3:WMLS_AddToStore
(我可以这样做),但随后我需要向其添加 xmlns:q1
属性。
代码:
type Message interface{}
type OperationWMLS_AddToStoreSoapIn struct {
WMLtypeIn string `xml:"WMLtypeIn,omitempty"`
XMLin string `xml:"XMLin,omitempty"`
OptionsIn string `xml:"OptionsIn,omitempty"`
CapabilitiesIn string `xml:"CapabilitiesIn,omitempty"`
}
type Body struct {
XMLName xml.Name `xml:"SOAP-ENV:Body"`
ActionName temperature `xml:"q1:WMLS_AddToStore"`
}
type Action struct {
ActionName Message `xml:",innerxml"`
XMLAttr string `xml:"xmlns:q1,attr"`
}
func main() {
in := struct {
OperationWMLS_AddToStoreSoapIn `xml:"tns:WMLS_AddToStore"`
}{
OperationWMLS_AddToStoreSoapIn{
"WMLtypeIn",
"XMLin",
"OptionsIn",
"CapabilitiesIn",
},
}
x := &Body{
ActionName: Action{
ActionName: in,
XMLAttr: "http://www.foo.abr/message/120",
},
}
enc := xml.NewEncoder(os.Stdout)
enc.Indent("", " ")
if err := enc.Encode(x); err != nil {
fmt.Printf("error: %v\n", err)
}
}
这是 Playground : https://play.golang.org/p/fWl-G2d8ME2
最佳答案
您如何看待这样重写您的代码 (https://play.golang.org/p/Kf5VpQeuThx):
package main
import (
"encoding/xml"
"fmt"
"os"
)
type s2 struct {
XMLName xml.Name `xml:"q3:WMLS_AddToStore"`
XMLAttr string `xml:"xmlns:q3,attr"`
WMLtypeIn string `xml:"WMLtypeIn,omitempty" json:"WMLtypeIn,omitempty" yaml:"WMLtypeIn,omitempty"`
XMLin string `xml:"XMLin,omitempty" json:"XMLin,omitempty" yaml:"XMLin,omitempty"`
OptionsIn string `xml:"OptionsIn,omitempty" json:"OptionsIn,omitempty" yaml:"OptionsIn,omitempty"`
CapabilitiesIn string `xml:"CapabilitiesIn,omitempty" json:"CapabilitiesIn,omitempty" yaml:"CapabilitiesIn,omitempty"`
}
type s1 struct {
XMLName xml.Name `xml:"SOAP-ENV:Body"`
S2 s2
}
func main() {
x := &s1{
S2: s2{
XMLAttr: "http://www.foo.abr/message/120",
WMLtypeIn: "WMLtypeIn",
XMLin: "XMLin",
OptionsIn: "OptionsIn",
CapabilitiesIn: "CapabilitiesIn",
},
}
enc := xml.NewEncoder(os.Stdout)
enc.Indent("", " ")
if err := enc.Encode(x); err != nil {
fmt.Printf("error: %v\n", err)
}
}
关于xml - go - 标签中的属性/隐藏父标签 : SOAP envelope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52878603/
我必须使用工具来生成 SOAP 请求,它可以通过两种方式来实现。生成以以下开头的请求: 或与: 我怀疑一种是当前技术,另一种是遗留技术。但是由于只有一个在 url 中有类似日期的东西,我无法弄清楚
之间有什么区别 和 以及如何在它们之间切换? 如何将响应从 具有定义的命名空间 "http://schemas.xmlsoap.org/soap/envelope/" ,它的特殊含义是底层 XML
我的 wcf 和我的服务的soap xml 响应有问题。怎么改
我需要从使用信封模式 (p7m) 或信封模式 (p7s) 的签名文件中提取其签名的原始文件。 我很难弄清楚如何使用 bouncycaSTLe 库来做到这一点。 我同时使用 BouncyCaSTLe 1
我正在为 android 中的 DBConnection 起诉 asp.net webservice (visual studio 2008)。 运行成功。 我的安卓代码是: protected vo
我当前正在尝试从我的 Azure Function 调用 SOAP 服务,但出现以下错误: 但是,我能够成功处理来自 .NET 应用程序的请求。 HTTP Status 500 - Request p
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 4 年前。 Improve
smtp中的信封和电子邮件之间的确切区别是什么? 为什么协议(protocol)需要信封?在蜗牛邮件中,信件不需要包含地址并且 postman 看不到(至少这是你想要相信的),所以所有的路由都是完全基
免责声明:这不是任何类型的作业,这个问题只是在我浏览所有圣诞贺卡时想到的 问题如下:我们有 M 个信封和 N 个字母,每个字母都被描述为一对正整数。信封和信件都是长方形的,显然可以旋转。如果两个尺寸都
我收到错误“找不到元素soapenv:Envelope 的声明” 与其他 xml 文件 xsd 一起工作正常..问题在于以下文件.. 我的 Xml 文件是:-
我正在尝试将 SoapObject 或 Envelope 存储在一个文件中,但认为它不是可序列化的,因此它没有存储在文件中。 我的目标是将 SoapObject 或 Envelope 一次存储在文件中
我正在尝试连接到通过网络服务客户端保护的网络服务 https。 Eclipse 生成了一个基于 stub 的 web 服务客户端,对我来说看起来不错。当我尝试从网络服务调用方法时出现问题: Strin
我正在查询其余 API 以获取所有信封。 以下是UI中的文档 当我使用包含正确的开始日期和结束日期以及帐户 ID 的信封列表更改进行查询时 它只给我第一个和最后一个文档,如下所示。 最佳答案 您可以使
我正在尝试在 Windows 7(64 位)上运行的 Delphi XE7 应用程序中通过 FireDAC 加密/解密 SQLite 数据库。 代码如下所示: Procedure TMain.Acti
我正在编写一个 IMAP 客户端,我有一个问题。 获取发件人、发件人、收件人、抄送等 - 我可以 FETCH RFC822.HEADER ,这会给我一个长字符串,有时不相关信息,或者我可以 FETCH
上下文:我正在尝试在网络上制作一个 100% 模块化合成器 到目前为止,我看到的制作包络的教程使用函数来触发包络的不同阶段,但是如果我想根据 AudioNode 的输出触发包络该怎么办? 例如,在方波
我对这一切都很陌生,但我正在尝试创建 SOAP 消息并陷入困境,我使用 Java 8 和标准 javax.xml.soap 类,但似乎无法将 namespace 添加到信封 MessageFactor
我正在尝试根据 vector 中的坐标是否被其他坐标包围或支配来对它们进行排序。例如,坐标 [1 , 2 , 1 , 1] 被 [4, 2 , 1 , 2] 包围或控制,即使两者的第二个和第三个值坐标
我正尝试在 python 库的帮助下使用 wsdl zeep .它工作正常,但我无法找到如何从请求中获取数据。 我的代码: # encoding=utf-8 from requests.auth im
我正在尝试将 Go 结构编码为 Soap-Envelope (xml)。到目前为止,除了一个小错误外,皂体看起来还不错。虽然我的信封应该是这样的: param1
我是一名优秀的程序员,十分优秀!