如何使用返回XML的Web服务?

时间:2014-07-09 17:16:02

标签: c# xml web-services

我需要使用第三方网络服务。对它的调用将是这样的: https://somesitename.com/Service.dll?[operation]?[parameter1]&[parameter2]

它根据调用的操作和操作的结果返回各种XML结构。 它可以这么简单:

<?xml version="1.0"?>
<RESULTS>
    <VALUE>some return value here</VALUE>
</RESULTS>

或者对于返回稍微复杂数据的调用,它可能是这样的:

<?xml version="1.0" ?> 
<RESULTS>
    <RETURN>
        <RESPONSEMSG>Some message.</RESPONSEMSG> 
    </RETURN>
    <DATA>
        <COUNT>1</COUNT> 
        <VALUE1>1</VALUE1> 
        <VALUE2>1</VALUE2> 
        <VALUE3>FALSE</VALUE3> 
    </DATA>
</RESULTS>

如果该调用发生了错误,它将返回类似的内容:

<?xml version="1.0" ?> 
<RESULTS>
    <RETURN>
        <ERROR>Error Message.</ERROR>
    </RETURN> 
</RESULTS>

所以,基本上我只是尝试使用REST服务的XML响应。它没有数据合同,我所要做的只是提供给我的示例响应。我应该为每种类型的结果构建poco类吗?我想我会使用HTTPClient或WebClient来向服务发出请求。然后我需要以某种方式将生成的XML反序列化为一个我可以返回的对象。对于这种事情,是否有最佳实践或模式?任何建议都将不胜感激,谢谢!

2 个答案:

答案 0 :(得分:0)

许多技术

linq2xml 或者你可以使用xpath,那里有大量的xml解析库。

linq2xml可能是最近最简单的。

只有linq2xml的问题在于,如果你在1函数中解析整个事情,你真的想要事先验证xml结构 - 找出问题。

答案 1 :(得分:0)

是POCO最适合这种情况。然后使用LINQ-to-XML解析XML。它总是很适合强类型编程