溫馨提示×

C#如何解析SOAP響應

c#
小樊
154
2024-06-24 12:07:28
欄目: 編程語言

在C#中解析SOAP響應可以通過使用System.ServiceModel和System.Xml命名空間下的類來實現。以下是一個簡單的示例代碼,展示如何解析SOAP響應:

using System;
using System.IO;
using System.Net;
using System.Xml;

class Program
{
    static void Main()
    {
        string soapResponse = "<soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'><soap:Body><HelloResponse xmlns='http://example.com'><HelloResult>Hello, World!</HelloResult></HelloResponse></soap:Body></soap:Envelope>";

        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.LoadXml(soapResponse);

        XmlNamespaceManager nsManager = new XmlNamespaceManager(xmlDoc.NameTable);
        nsManager.AddNamespace("soap", "http://schemas.xmlsoap.org/soap/envelope/");
        nsManager.AddNamespace("ns", "http://example.com");

        XmlNode responseNode = xmlDoc.SelectSingleNode("//ns:HelloResult", nsManager);
        string result = responseNode.InnerText;

        Console.WriteLine(result);
    }
}

在上面的示例中,我們首先創(chuàng)建了一個包含SOAP響應的字符串soapResponse。然后,我們使用XmlDocument類加載這個字符串,并使用XmlNamespaceManager來處理命名空間。

接著,我們使用SelectSingleNode方法和XPath表達式來獲取HelloResult節(jié)點的值,并將其打印出來。

這是一個簡單的示例,您可以根據實際情況對代碼進行調整和擴展。

0