如何使用 C# 从 XML Web 服务获取值?

Mic*_*yor 5 c# xml web-services

在 C# 中,如果我需要打开 HTTP 连接、下载 XML 并从结果中获取一个值,我该怎么做?

为了保持一致性,假设 Web 服务位于 www.webservice.com,并且如果您向它传递 POST 参数 fXML=1,它会返回给您

<xml><somekey>somevalue</somekey></xml>
Run Code Online (Sandbox Code Playgroud)

我希望它能吐出“somevalue”。

tra*_*vis 3

我使用这段代码并且效果很好:

System.Xml.XmlDocument xd = new System.Xml.XmlDocument;
xd.Load("http://www.webservice.com/webservice?fXML=1");
string xPath = "/xml/somekey";
// this node's inner text contains "somevalue"
return xd.SelectSingleNode(xPath).InnerText;
Run Code Online (Sandbox Code Playgroud)

编辑:我刚刚意识到您正在谈论 Web 服务而不仅仅是纯 XML。在 Visual Studio 解决方案中,尝试右键单击“解决方案资源管理器”中的“引用”,然后选择“添加 Web 引用”。将出现一个对话框,询问 URL,您只需将其粘贴到:“ http://www.webservice.com/webservice.asmx ”。VS 将自动生成您需要的所有帮助程序。然后你就可以调用:

com.webservice.www.WebService ws = new com.webservice.www.WebService();
// this assumes your web method takes in the fXML as an integer attribute
return ws.SomeWebMethod(1);
Run Code Online (Sandbox Code Playgroud)