我如何使用这样一个返回XML的web服务?
本文关键字:XML 返回 一个 web 服务 何使用 | 更新日期: 2023-09-27 18:12:07
我有一个需要使用的第三方web服务。对它的调用将是这样的:https://somesitename.com/Service.dll?[行动]? [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反序列化为可以返回的对象。对于这类事情是否存在最佳实践或模式?任何建议将不胜感激,谢谢!
多种技术
linq2xml或者您可以使用xpath,这里有很多XML解析库。
linq2xml可能是目前最简单的。
linq2xml的唯一问题是,如果您在一个函数中解析整个内容,那么您真的需要在手动验证xml结构之前找到问题。
是的,POCO最适合这种情况。然后使用LINQ-to-XML解析XML。使用强类型编程总是好的