为什么我不能获取这个节点的属性值

本文关键字:节点 属性 不能 获取 为什么 | 更新日期: 2023-09-27 18:19:35

这是我尝试使用的代码:

 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>

我想做的就是获取的url

感谢任何形式的帮助

为什么我不能获取这个节点的属性值

更改

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

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

如果您不想检查null,您可以尝试这些XML扩展,并将其写成:

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

没有那么难:

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

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