从元素中获取属性列表

时间:2014-05-22 23:22:39

标签: c# xml linq

仍在学习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(....)

但显然我做错了,因为我尝试的一切都是错误的。

1 个答案:

答案 0 :(得分:0)

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

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

如果address不是您的root的直接元素,那么这将不起作用。如果是这种情况,请使用Descendants

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