1

这是我的 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()};

这不会产生任何结果。

谢谢, 苏亨杜

4

2 回答 2

1

当文档中有默认命名空间时,您必须将其解析为好像它是命名命名空间一样。例如。

XNamespace ns = "urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/";

var xDIDL = xResponse.Element(ns + "DIDL-Lite");

无论你如何命名 ns 变量,它都不重要。关键是在您传递元素名称(准确地说是 XName)的任何地方,您都需要包含命名空间 + 名称。您会注意到 string 可以转换为 XNamespace,但您也可以使用它的构造函数。

于 2010-03-22T07:28:47.360 回答
0

您正在使用您的 xml 架构,该架构应该出现在您尝试访问的元素的名称中。签出XNamespace类。

于 2010-03-22T07:30:51.417 回答