这是我的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时:
var vnyData = from xmyResponse in xResponse.Descendants("DIDL-Lite").Elements("item")
select new myClass
{strTitle = ((string)xmyResponse .Element("title")).Trim()};
这不是任何结果。
谢谢, Subhendu
答案 0 :(得分:1)
如果文档中有默认命名空间,则必须将其解析为命名空间。例如。
XNamespace ns = "urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/";
var xDIDL = xResponse.Element(ns + "DIDL-Lite");
无论你怎么命名,ns变量都是不重要的。关键是,无论您传递元素名称(确切地说是XName),您都需要包含命名空间+名称。您会注意到字符串可以转换为XNamespace,但您也可以使用它的构造函数。
答案 1 :(得分:0)
您正在使用xml架构,该架构应存在于您尝试访问的元素的名称中。查看XNamespace
课程。