这里是我的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