<return href="#1"/>
</NS1:GetServiceInfoResponse>
<SOAP-ENV:TOperationResultServiceInfo id="1" xsi:type="NS2:TOperationResultServiceInfo">
<Success xsi:type="xsd:boolean">true</Success>
<OperationResult href="#2"/>
<ServiceError xsi:nil="true"/>
</SOAP-ENV:TOperationResultServiceInfo>
<SOAP-ENV:OperationResult id="2" xsi:type="NS2:TServiceInfo">
<ServiceVersion xsi:type="xsd:string">1.2.0.1307</ServiceVersion>
<SoftwareVersion xsi:type="xsd:string">1.20.3</SoftwareVersion>
<SoftwareName xsi:type="xsd:string">АРМ Орион Про</SoftwareName>
<DatabaseVersion xsi:type="xsd:string">MSSQL</DatabaseVersion>
</SOAP-ENV:OperationResult>
Описал типы:
// ResponseResult data
type ResponseResult struct {
GetServiceInfoResponse interface{} `xml:"NS1:GetServiceInfoResponse"`
TOperationResultServiceInfo ServiceError `xml:"SOAP-ENV:TOperationResultServiceInfo"`
OperationResult ServiceInfo `xml:"SOAP-ENV:OperationResult"`
}
// ServiceError data
type ServiceError struct {
ErrorCode string `xml:"ErrorCode"`
Description string `xml:"Description"`
InnerExceptionMessage string `xml:"InnerExceptionMessage"`
}
// ServiceInfo data
type ServiceInfo struct {
ServiceVersion string `xml:"ServiceVersion"`
SoftwareVersion string `xml:"SoftwareVersion"`
SoftwareName string `xml:"SoftwareName"`
}
Пытаюсь размаршалить:
res, err := soap.Call("GetServiceInfo", params)
if err != nil {
log.Fatalf("Call error: %s", err)
}
log.Println("Body: ", string(res.Body))
r := bolid.ResponseResult{}
err = xml.Unmarshal(res.Body, &r)
if err != nil {
log.Fatalf("xml.Unmarshal error: %s", err)
}
В итоге ошибок нет, но и объект не заполняется данными...
Подскажите плиз где косячу?🙈
Упорно не хотел поддаваться, но получилось, хоть и не без костылей https://goplay.space/#ALEGM2NbUvX
Попробуйте использовать вот это https://www.onlinetool.io/xmltogo/
Обсуждают сегодня