从元素获取属性列表

本文关键字:列表 属性 获取 元素 | 更新日期: 2023-09-27 18:04:37

还在学习LINQ to XML,我在解析我想要的数据时遇到了麻烦。

XML是这样的:

<address address1="5750 Ramirez Canyon Road" city="Malibu" state="CA" otherstate=" " postalcode="90265" country="US">

我想创建一个包含所有属性的字典。我一直在尝试各种各样的东西,我只是把自己弄糊涂了。我一直得到空引用异常错误等。我一直在尝试这样的东西:

var address = docCustomer
            .Element("address")
            .Attributes()
            .ToDictionary(....)

但很明显我做错了什么,因为我所做的一切都失败了。

从元素获取属性列表

还没有向我们展示xml文件的结构。docCustomer引用您的xml文档,如果您想获得Root的子元素,请使用:

 docCustomer
 .Root.Element("address")
 .Attributes()
 .ToDictionary(x => x.Name, x => (string)x);

如果address不是根的直接元素,这将不起作用。如果是这种情况,请使用Descendants:

docCustomer
 .Descendants("address")
 .First()
 .Attributes()
 .ToDictionary(x => x.Name, x => (string)x);