为什么我无法获取此节点的属性值

时间:2013-06-22 19:45:01

标签: c# xml

这是我尝试的代码:

 var items = xdoc.Descendants("item")
                    .Select(item => new
                    {
                        MyImage = (string)item.Elements("enclosure")
                       .Select(i => i.Attribute("url").Value)
                       .SingleOrDefault()
                    })
                    .ToList();

以下是它在xml文件中的外观:

<item>
<enclosure url="http://ep00.epimg.net/politica/imagenes/2013/06/22/actualidad/1371899226_298900_1371917547_miniatura_normal.jpg" length="6409" type="image/jpeg" />
</item>

我想做的就是抓住网址

感谢任何形式的帮助

3 个答案:

答案 0 :(得分:1)

更改

MyImage = (string)item.Elements("enclosure")
.Select(i => i.Attribute("url").Value)
                       .SingleOrDefault()

MyImage = (string)item.Element("enclosure").Attribute("url").Value

如果您不想检查null,可以尝试these XML extensions并将其写成:

MyImage = item.Get("enclosure/url", "");

答案 1 :(得分:0)

这并不难:

var result = xdoc.Descendants("item").Select(n =>
    n.Element("enclosure").Attribute("enclosure").Value);

答案 2 :(得分:0)

如果涉及名称空间,则如果未包含名称空间,则.Elements(name)将不匹配。要测试是否是这种情况,请尝试使用.Elements(name)替换.Elements().Where(e => e.Name.LocalName == name)的实例。