Элемент return
вашего ответа SOAP содержит строку JSON, поэтому вы не можете использовать XmlDocument
и запрос XPath для извлечения данных из этого.
Вам необходимо запросить данные JSON с помощью JSONdeserializer, например, я использовал JSON.NET в этом примере - вы можете добавить это в свой проект, установив пакет NuGet Newtonsoft.Json.
Так что здесь есть два шага - во-первыхизвлечь содержимое элемента return
из ответа XML.Я использую XDocument
вместо XmlDocument
, как вы использовали, так как XDocument
- это более современный API и лучше работает с такими современными языковыми функциями, как Linq.
Второй шаг - десериализация контента JSON,и извлеките содержимое в переменные.
var xDoc = XDocument.Parse(response);
var returnJson = xDoc.Descendants("return")
.Single()
.Value;
var cities = JArray.Parse(returnJson);
foreach (var city in cities)
{
var cityId = city["cityId"].Value<string>();
var countryId = city["countryId"].Value<string>();
}