Я знаю, что на эту тему уже есть несколько сообщений, но я не смог использовать ответы, чтобы выяснить, что мне нужно.Анализ SOAP-ответа в DataSet
Я ссылка следующего сообщения: Read Soap Message using C#
Ниже мой модифицированном ответ SOAP (только для защиты частной информации):
REMOVED SOAP REQUEST
Ниже приведен код, который я ', используя, чтобы попытаться разобрать этот XML:
string file = ConfigurationManager.AppSettings["xmlSource"];
XmlReader reader;
reader = XmlReader.Create(file);
XmlReaderSettings settings = new XmlReaderSettings();
XmlDocument xd = new XmlDocument();
var nsmgr = new XmlNamespaceManager(xd.NameTable);
//nsmgr.AddNamespace("soap", "http://schemas.microsoft.com/sharepoint/soap/");
nsmgr.AddNamespace("soap", "http://schemas.xmlsoap.org/soap/envelope/");
nsmgr.AddNamespace("xs", "StAc_StuOnTrans");
nsmgr.AddNamespace("st", "http://tempuri.org/StAc_StuOnTrans.xsd");
xd.Load(file);
XmlNodeList xnList = xd.SelectNodes("//StAc_StuOnTrans", nsmgr);
int nodes = xnList.Count;
//xd.Load(reader); //soap message
XmlNode xn = xd.DocumentElement;
XmlNode c = xn.FirstChild;
XmlNode result = xn.SelectSingleNode("Student_OnTranscripts");
Код, кажется, подбирает структуру узла до тех пор, пока Я добираюсь до последней строки, в которой «результат» интерпретируется как нуль. Из чтения, которое я сделал, это звучит так, как будто у меня неправильное пространство имен, но независимо от того, что я пытаюсь добавить в NameSpaceManager, он всегда возвращается как null.
Может ли кто-нибудь помочь мне здесь? Кто-нибудь есть рекомендации по библиотекам, которые я могу использовать, кроме стандартных .NET?
Вам не нужно разобрать SOAP. Структура сделает это для вас. Просто используйте один и тот же тип данных с обеих сторон. –
Thaks @ matt-dot-net. Можете ли вы предоставить более подробную информацию? Итак, если я использую пример ответа SOAP на данный момент, какие объекты/методы в структуре я должен назвать? – kickinchicken
ОК ... прошло некоторое время с тех пор, как я это сделал. Я добавил ссылку на проект к проекту. Теперь мне просто нужно вызвать веб-службу из кода. – kickinchicken