Вот мой XML-ответ:Как обрабатывать XML с несколькими пространствами имен по умолчанию?
<DIDL-Lite
xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/"
<item id="1182" parentID="40" restricted="1">
<title>Hot Issue</title>
</item>
</DIDL-Lite>
Когда я пытаюсь разобрать его с помощью xELemnt и попытаться присваивание вар, как показано ниже:
var vnyData = from xmyResponse in xResponse.Descendants("DIDL-Lite").Elements("item")
select new myClass
{strTitle = ((string)xmyResponse .Element("title")).Trim()};
Это не yeilding никаких результатов.
Спасибо, Subhendu
Спасибо, г-н Эйнштейн. В моем документе есть несколько пространств имен. Поэтому в этом случае мне нужно написать: XNamespace ns = "urn: schemas-upnp-org: metadata-1-0/DIDL-Lite /"; XNamespace ns1 = "http://purl.org/dc/elements/1.1/"; XNamespace ns2 = "urn: schemas-upnp-org: metadata-1-0/upnp /"; var xDIDL = xResponse.Element (ns + ns1 + ns2 + "DIDL-Lite"); – Simsons
Нет, в вашем документе XML любой элемент, который не имеет префикса, находится в пространстве имен по умолчанию (то есть в том, что говорит xmlns = "..." в противоположность xmlns: prefix = "...") поэтому вам нужно только ns + «ElementName». Однако, если вы ссылались на элемент в другом пространстве имен, вам нужно было бы сделать ns1 + «ElementName» или ns2 + «ElementName», но не более одного пространства имен для определенного имени элемента. – Josh