Извлечение значения из простого XML-элемента (только root) с использованием XDocument - PullRequest
1 голос
/ 19 февраля 2012

Мой XML выглядит следующим образом: (исходит из веб-службы)

<int xmlns="http://schemas.microsoft.com/2003/10/Serialization/">36</int>

Мне нужно добраться до 36 и попытаться сделать это следующим образом:

Stream dataStream = response.GetResponseStream();
XDocument _xdoc = XDocument.Load(dataStream);    
return _xdoc.Element("int").Value;

Но он не может найти элемент. возвращает нулевое значение;

В чем моя ошибка?

Tx

Ответы [ 2 ]

0 голосов
/ 19 февраля 2012

Вы не используете пространство имен:

Stream dataStream = response.GetResponseStream();
XDocument _xdoc = XDocument.Load(dataStream);    
var ns = "http://schemas.microsoft.com/2003/10/Serialization/";
return _xdoc.Element(ns + "int").Value;

Или проще, используя XElement:

Stream dataStream = response.GetResponseStream();
return XElement.Load(dataStream).Value;
0 голосов
/ 19 февраля 2012

Я предполагаю, что ваша строка xml всегда является одним узлом ... как в вашем коде. Вы можете попробовать это так.

string xml = "<int xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/\">36</int>";
            XmlDocument doc = new XmlDocument();
            doc.LoadXml(xml);
            string val = doc.InnerText;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...