从SoapException中读取XMLNode错误

时间:2014-08-04 13:52:44

标签: c# web-services soapexception

我有这种SoapException

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <soap:Fault>
            <faultcode>soap:Server</faultcode>
            <faultstring>Fault occurred while processing.</faultstring>
            <detail>
                <ns1:WaybillRegistrationFault xmlns:ns1="http://pod.waybillmanagement.ws.industrysystem.com.ar/">
                    <errors xmlns:ns2="http://pod.waybillmanagement.ws.industrysystem.com.ar/">
                        <code>80000</code>
                        <description>El número de CTG 59455243 ya existe</description>
                    </errors>
                    <errors xmlns:ns2="http://pod.waybillmanagement.ws.industrysystem.com.ar/">
                        <code>1000</code>
                        <description>Unexpected Error</description>
                    </errors>
                </ns1:WaybillRegistrationFault>
            </detail>
        </soap:Fault>
    </soap:Body>
</soap:Envelope>

如何阅读每个错误?我尝试使用Detail.InnerText,但所有文本显示没有格式化。 有没有办法在标签上使用foreach?

1 个答案:

答案 0 :(得分:0)

您可以使用LinqToXml

轻松解析该xml
var errors = XDocument.Parse(yourxmlstring)
                .Descendants("errors")
                .Select(e => new
                {
                    code = (int)e.Element("code"),
                    desc = (string)e.Element("description")
                })
                .ToList();