如何从SOAP消息中检索集合

时间:2011-02-15 10:22:54

标签: c# asp.net web-services soap

我正在使用网络服务来提供基于特殊公司编号的渲染公司信息。 但我无法从响应SOAP消息中获取数据。 您可以看到响应soap消息的示例。 (我在标签上遗漏了一些公司信息)。

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<businessGetDossierV3Response xmlns="http://www.webservices.nl/soap/">
<out>
<paging>
<curpage>1</curpage>
<perpage>10</perpage>
<numpages>1</numpages>
<numresults>1</numresults>
<maxresults>100</maxresults>
</paging>
<results>
<item>
<DossierNo></DossierNo>
<SubDossierNo></SubDossierNo>
<ChamberNo></ChamberNo>
<Legalformcode></Legalformcode>
<LegalformcodeText></LegalformcodeText>
<Tradename45></Tradename45>
<EstablishmentPostcode></EstablishmentPostcode>
<EstablishmentCity></EstablishmentCity>
<EstablishmentStreetname></EstablishmentStreetname>
<EstablishmentHouseNo></EstablishmentHouseNo>
<CorrespondencePostcode></CorrespondencePostcode>
<CorrespondenceCity></CorrespondenceCity>
<CorrespondenceStreetname></CorrespondenceStreetname>
<CorrespondenceHouseNo></CorrespondenceHouseNo>
</item>
</results>
</out>
</businessGetDossierV3Response>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

!这是我在演示客户端看到的结果! 但这是我在C#中的代码

        nl.webservices.ws1.BusinessDossierV3PagedResult result = null;
        result = myserviceBusiness.businessGetDossierV3(KVKnr, "0000", 1);

我想做这样的事情(但结果而不是分页部分)

int page = result.paging.numpages;

然后我想我应该是这样的

string city = result.results.item.CorrespondenceCity;

但这是一个错误信息

因此在Visual Studio 2010中,我只能检索xml的分页部分中的数据并将其放入文本框中,而不是从结果部分中。这是因为结果部分是某种集合吗?

是的,如何将标签EstablishmentPostcode和EstablishmentCity中的数据放在我的默认页面的文本框中?

提前致谢

1 个答案:

答案 0 :(得分:1)

您可以尝试将SOAP服务添加为项目的Web引用。 http://msdn.microsoft.com/en-us/library/tydxdyw9.aspx

如果您不想这样做而宁愿直接使用XML,则可以使用xpath访问results元素中的所有item元素。 http://www.stardeveloper.com/articles/display.html?article=2009031001&page=1

使用xpath时要注意的一点是,您要为要尝试选择的节点使用正确的xml命名空间。