我正在尝试将针对 C# 编写的肥皂查询转换为 Visual C++ 中的 gSoap 查询。
C# 查询将 XML 节点添加到查询调用中,以便将参数传递给查询:
XmlNode queryOpts = xmlDoc.CreateNode(XmlNodeType.Element, "QueryOptions", "");
queryOpts.InnerXml = "<DateInUtc>TRUE</DateInUtc>";
这是 C# 查询,传递各种参数(一些参数被指定为 XmlNode 对象)
XmlNode nodeListItems = listService.GetListItems("Announcements", null, query, viewFields, null, queryOpts, null);
C++ / gSoap 查询允许我传递查询和响应对象:
listService.__ns10__GetListItems(&announcementQuery, &announcementResponse)
查询对象具有可以设置的与 C# 调用中的参数相关的各种属性:
announcementQuery.listName
announcementQuery.query
announcementQuery.queryOptions
announcementQuery.viewFields
第一个参数有一个字符串,没问题。
查询、queryOptions 和 viewFields 有点混乱。
"query" 是一个 _ns2__GetListItems_query 类型的类,它有以下函数和成员:
soap_default()
soap_get()
soap_in()
soap_out()
soap_put()
soap_serialize()
soap_type()
__any
__mixed
对于查询、queryOptions 和 viewFields,我只想指定一个 xml 格式的字符串,就像 C# 代码一样,但我不确定这是如何完成的。
有人可以对此发表一些经验吗?
谢谢!