2012-02-03 2 views
1

Я пытаюсь разобрать элемент «сообщение» из следующего фрагмента XML с помощью Linq для XML, но по какой-то причине он не работает:Я пытаюсь разобрать фрагмент XML с Linq для XML

<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"> 
    <code/> 
    <message xml:lang="en-US">Bad Request - Error in query syntax.</message> 
</error> 

Я уверен, что мне не хватает чего-то глупого.

+1

Предоставить исходный код –

ответ

2

Хорошо, как выглядит ваш код, который вы ожидаете, какой из них вы получите, если вы получите сообщение об ошибке с точным сообщением об ошибке. Фрагмент имеет пространство имен, поэтому убедитесь, что при выборе элементов вы делаете что-то вроде этого:

XElement error = XElement.Parse(fragment); 
XNamespace df = error.Name.Namespace; 
XElement msg = error.Element(df + "message");. 
0

Я понял! В основном, вы должны использовать пространство имен по умолчанию, как показано:

 var element = XElement.Parse(...); 

     var ns = element.GetDefaultNamespace(); 

     var message = element.Element(ns + "message").Value; 
+0

Работает только в том случае, если фрагмент является одним элементом. – rainabba

Смежные вопросы