В настоящее время я делаю клиент веб-службы (веб-приложение C #), который использует данные из веб-службы моего поставщика. Поскольку я не программист, и я впервые работаю с веб-сервисом, я узнал из многих руководств по использованию простых данных веб-сервиса. Однако я застрял, я получил значение, содержащееся в массиве.
Это ответ веб-службы в формате XML, который я могу получить от клиента SOAP, такого как SoapUI:
<GetSiteDataResponse xmlns="http://tempuri.org/">
<SiteDataResult
xmlns:a="http://schemas.datacontract.org/2004/07/KPIService"
xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<a:SiteName>PMU88</a:SiteName>
<a:SiteLocation>EcoHill</a:SiteLocation>
<a:SiteData>
<a:DateIntervalNode>
<a:Date>2019-01-01</a:Date>
<a:Temperature>
<a:TemperatureNode>
<a:AverageTemperature>35</a:AverageTemperature>
<a:Unit>C</a:Unit>
</a:TemperatureNode>
</a:Temperature>
</a:DateIntervalNode>
<a:DateIntervalNode>
<a:Date>2019-01-02</a:Date>
<a:Temperature>
<a:TemperatureNode>
<a:AverageTemperature>32</a:AverageTemperature>
<a:Unit>C</a:Unit>
</a:TemperatureNode>
</a:Temperature>
</a:DateIntervalNode>
</a:SiteData>
</SiteDataResult>
</GetSiteDataResponse>
Чтобы использовать данные веб-службы в веб-приложении, я добавляю ссылку на службу в веб-приложении, которая ссылается на WSDL веб-службы. Параметры результата будут отображаться в виде меток на веб-странице. Это мой код:
public partial class SiteTemp : System.Web.UI.Page
{
protected void btnInvoke_Click1(object sender, EventArgs e)
{
ServiceReference1.siteTemperatureData myWebService = new ServiceReference1.siteTemperatureDataClient();
string username = "user1";
string password = "mypassword";
string siteID = "1104";
lblSiteName.Text = myWebService.GetSiteData(username, password, siteID).SiteName;
lblSiteLocation.Text = myWebService.GetSiteData(username, password, siteID).SiteLocation;
lblDate1.Text = ???
lblTemperature1.Text = ???
lblUnit1.Text = ???
lblDate2.Text = ???
lblTemperature2.Text = ???
lblUnit2.Text = ???
}
}
Я могу получить значение SiteName & SiteLocation, но я понятия не имею, как получить значение Date, AverageTeuration & Unit, потому что тип элемента 'SiteData' является массивом, и мне нужно идти дальше вниз по иерархии, чтобы получить данные, которые мне нужны. В большинстве связанных потоков я вижу, как люди получают значение из покупки массива, в моем случае также есть массив внутри массива. Любая помощь / подсказка / подсказка высоко ценится.