Я пишу приложение Silverlight, которое вызывает веб-службу SharePoint.Я получаю ответ, но я не понял правильный синтаксис LINQ для чтения значения элемента «ErrorCode».Любая помощь очень ценится.
Вот ответ SharePoint:
<Results xmlns="http://schemas.microsoft.com/sharepoint/soap/">
<Result ID="1,New">
<ErrorCode>0x810200bf</ErrorCode>
<ErrorText>The list item could not be added or updated because duplicate values were found in one or more fields in the list.</ErrorText>
</Result>
</Results>
Я жестко кодирую приведенный ниже ответ, поэтому вам будет проще его протестировать:
TextReader sr = new StringReader( @"<?xml version=""1.0"" encoding=""utf-8"" ?>" +
@"<Results xmlns=""http://schemas.microsoft.com/sharepoint/soap/"">" +
@"<Result ID=""1,New"">" +
@"<ErrorCode>0x810200bf</ErrorCode>" +
@"<ErrorText>The list item could not be added or updated because duplicate values were found in one or more fields in the list.</ErrorText>" +
@"</Result>" +
@"</Results>");
XElement response = XElement.Load(sr);
sr.Close();
string errorCode = response.????????????????????
Я пробовал следующее:
// Attempt 1:
string errorCode = response.Elements("Results").Elements("Result").First().Value;
// Attempt 2:
string errorCode = response.Descendants(XName.Get("Result")).First().Value;
// Attempt 3:
string errorCode = response.Descendants("Results").Descendants("Result").First().Value;
// Attempt 4:
string errorCode = (from el in response.Elements("Result")
where el.Attribute("ID").Value == "1,New"
select el).First().Value;
Спасибо.