Я пытался разобрать некоторую информацию и следовал замечательному совету от http://lakenine.com/reading-xml-with-namespaces-using-linq/ Я уверен, что это близко, но я не получаю никаких результатов для отображения. Нет ошибок, просто никаких результатов. Точки останова и контрольные переменные показывают, что docx имеет правильную информацию, но мой цикл for пропущен прямо. Я играл с несколькими вариантами и удался только сбой кода. Я считаю, что проблема связана с параметром XPathSelectElements, но не знаю, что еще попробовать. На этом этапе мне нужен только токен, но мне нужно будет повторно использовать код для возврата, который может иметь несколько результатов. Пожалуйста посоветуйте и заранее спасибо:разбор SOAP xml с пространствами имен
string sampleXML = String.Concat(
"<soap12:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"",
" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"",
" xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\">",
" <soap12:Body>",
" <BeginSessionV2Response xmlns=\"http://ws.jobboard.com/jobs/\">",
" <BeginSessionV2Result>ca5522fb93ef499f8ed010a5f4153af7-446298346-SB-4</BeginSessionV2Result>",
" </BeginSessionV2Response>",
" </soap12:Body>",
" </soap12:Envelope>"
);
XmlReader reader = XmlReader.Create(new StringReader(sampleXML));
System.Xml.XmlNameTable nameTable = reader.NameTable;
System.Xml.XmlNamespaceManager namespaceManager = new System.Xml.XmlNamespaceManager(nameTable);
namespaceManager.AddNamespace("soap12", "http://www.w3.org/2001/XMLSchema-instance/");
XElement docx = XElement.Load(reader);
string vbResultz = "start: ";
var sessionKey = from pn
in docx.XPathSelectElements("soap12:Body/BeginSessionV2Response/BeginSessionV2Result", namespaceManager)
select (string)pn;
foreach (string pn in sessionKey)
{
vbResultz += pn;
}
ViewBag.REsultz = vbResultz;
return View();
}