回答
如果您有权访问web服务的wsdl,那么将会生成一个实用程序wsdl
,该实用程序将生成所需的类和反序列化来调用Web服务并将其响应解析为这些类。
使用例如web服务在w3schools,你只要运行这个命令行:
wsdl "http://www.w3schools.com/webservices/tempconvert.asmx?WSDL"
这将生成一个文件TempConvert.cs,你可以添加到您的项目。然后调用Web服务仅仅是一个调用生成的函数的事情:
Double fahrenheit = 32.2;
TempConvert tempConverter = new TempConvert();
string Celcius = tempConverter.FahrenheitToCelsius(fahrenheit.ToString());
这TempConvert类需要的构建XML查询,web服务接触,并在解析将回复的细节问题这是一个超级 - 简单的例子,所以你只返回一个字符串,但由于你的webservice可能会更复杂一点,你会以解析的形式返回更复杂的包含你想要的数据的类。根据Web服务的复杂性,这甚至可以像字符串数组一样简单,或者像巨型类水印一样复杂。
有很多不同的方法来做到这一点,你可以反序列化的XML转换成一个对象,使用LINQ到XML提取数据,将XML加载到一个DOM和出XPATH数据等
你有响应数据包的XSD吗?
在C#中解析XML的最常见方法是在System.XML中使用XMLDocument。
但是,如果Web服务是基于SOAP的,最简单的方法就是将该服务的引用添加到项目中,并让该向导为您生成解析代码。
增加:使用的System.Xml
正如你细读XML的结构,你会看到在彼此元素(参见对象的XmlElement和XmlNode的)。每个都有子对象集合(XmlNode.ChildNodes [])。
XPath是一种导航到特定节点或节点子集的方式。有关基本概述,请阅读this article。
在决定哪种技术最好之前,您应该了解一些关于XML解析的基本知识。
使用XMLDocument类型的对象将整个XML加载到内存中,与读者对象一样,它是一个流,只有正在处理的块被加载到内存中。显然,读者使用的内存很少,但不会让您有能力回到当前正在处理的节点之前/之后。尽管你对文档有很大的自由度,但缺点是内存中有xml文件的副本。
因此,如果xml的大小预计很大,那么XmlDocument将不是最优的。使用xml应用什么样的逻辑也会影响选择。
好的答案,Sesh!你已经说明了我害怕XmlDocuments的一些原因。我几乎总是使用速度更快的XPathDocument/XPathNavigator对象,但可能不如XmlDocument那么直观。 – Cerebrus 2009-01-28 17:50:41
@LB:您还没有提及解析XML返回的目的。如果您正在对XML进行一些修改或查询某些特定数据,我会理解,但是如果您想简单加载它以便它可以显示在Datagrid中,那么我相信您有两个非常简单的(并且常规使用)选项:
- 直接将DataGrid绑定到XML,或使用XmlDataSource作为中介。
- 将XML加载到DataSet中并将您的DataGrid绑定到该Dataset。
就个人而言,我从来没有喜欢将XML转换为数据集,除非我有时间为XML文档创建特定的模式。所以,我倾向于第一种选择。
- 1. SSIS Web服务任务解析结果
- 2. 解析Web服务的结果
- 3. xml从web服务图像解析
- 4. 解析XML Web服务器从vb.net
- 5. 解析来自Web服务请求的XML结果Java
- 6. 从网络服务解析结果
- 7. Sax从Web服务解析
- 8. XML解析从服务器
- 9. MVC解析XML的Web服务
- 10. .net到Coldfusion的Web服务XML解析
- 11. Web服务器到android XML解析
- 12. Android的Web服务的XML解析
- 13. REST Web服务中的Spring XML解析
- 14. XML从外部XML解析(闪光灯AS3)(web服务)
- 15. 解析/解释从PHP中的Web服务检索到的XML
- 16. 来自web服务的XML结果
- 17. 解析类似XML的Web服务(Web服务在字符串中返回xml)
- 18. 从Android解析XML RPC结果
- 19. 解析布尔XML结果
- 20. Streaming xml-conduit解析结果
- 21. 解析网络服务结果
- 22. 从asp.net解析简单的XML与jQuery的web服务
- 23. xml使用从web服务返回的javascript解析
- 24. 从Web服务响应中解析单个XML节点
- 25. JSON解析从Web服务器在Haskell
- 26. 从PHP的Web服务解析Json
- 27. 错误解析JSONArray从.NET Web服务
- 28. NetworkOnMainThreadException当从服务器解析xml时
- 29. JSON解析的Web服务
- 30. Android:从.NET soap Web服务检索XML结果
请注意,提供的链接指向.NET 1.1,但在页面上应链接到较新版本。 – OregonGhost 2009-01-28 17:18:45