這裏是我的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 2010-03-22 08:04:02
不,在你的XML文檔中,任何沒有前綴的元素都在「默認」命名空間中(也就是說,與xmlns:prefix =「...」相對的是xmlns =「...」)。所以你只需要做ns +「ElementName」。但是,如果您在另一個命名空間中引用元素,則必須對特定元素名稱執行ns1 +「元素名稱」或ns2 +「元素名稱」,但不能多於一個名稱空間。 – Josh 2010-03-22 14:22:12