【发布时间】:2018-11-28 23:14:17
【问题描述】:
我收到来自 Web 请求的响应作为实际上是 XML 的字符串,并且根据我发送的请求,此响应可能会有所不同。它 可以是带有 Success 节点或 Error 节点的 XML。
在我的代码中处理此问题的最佳方法是什么?
我可以把这个String作为一个对象来访问响应的每个节点吗?
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:myService xmlns:ns1="http://site.de/alpm">
<ns1:Response>
<ns1:OrganisationData>
<ns1:ClientId>myID</ns1:ClientId>
<ns1:UserId>service</ns1:UserId>
<ns1:Pass>myPass</ns1:Pass>
</ns1:OrganisationData>
<ns1:TransactionData>
<ns1:TrxId>tg0rta1a1-6fh-hfh5-ryyb-ryyt56</ns1:CSDBTrxId>
<ns1:TimeOfProcessing>2018-11-28T13:09:41.179Z</ns1:TimeOfProcessing>
</ns1:TransactionData>
<ns1:Error>
<ns1:ReturnCode>lpt-978-jh</ns1:ReturnCode>
<ns1:Description>my description</ns1:Description>
</ns1:Error>
</ns1:Response>
</ns1:myService>
</soap:Body>
</soap:Envelope>
更改的是<ns1:Error></ns1:Error>,如果成功,它将是一个新标签。
如何在我的代码中处理这个问题。不要忘记我将其作为字符串接收?这是代码,字符串是“myResult”:
using (var webResponse = soapRequest.EndGetResponse(asyncResult))
{
string myResult;
var responseStream = webResponse.GetResponseStream();
if (responseStream == null)
{
return null;
}
using (var reader = new StreamReader(responseStream))
{
myResult = reader.ReadToEnd();
}
}
【问题讨论】:
-
这可能会有所帮助,但我如何控制和检查标签是否存在
或成功标签? -
使字段可选 - 可以为空。
标签: c# xml-serialization