2011-01-28 83 views
3
单级

我有以下XML:的LINQ to XML - 多元素导入

<appSettings> 
    <add key="Prop1" value="1" /> 
    <add key="Prop2" value="2" /> 
</appSettings> 

是否有一个LINQ到XML的查询加载此节的ConfigProp类的一个实例?

回答

2

你会想这样的事情

var xml = XElement.Parse(
    @"<appSettings><add key=""Prop1"" value=""1"" /><add key=""Prop2"" value=""2"" /></appSettings>"); 
new ConfigProp 
{ 
    Prop1=xml 
     .Elements("add") 
     .Single(element=>element.Attribute("key").Value == "Prop1") 
     .Attribute("value") 
     .Value, 
    Prop2 = xml 
     .Elements("add") 
     .Single(element => element.Attribute("key").Value == "Prop2") 
     .Attribute("value") 
     .Value 
}; 

请注意,如果您的XML不包含PROP1和PROP2键这跟抛出异常。

+0

原样 - 这不起作用。你需要`xml.Descendants( “添加”)`或`xml.Element( “的appSettings”)元素( “添加”)`代替`xml.Elements( “添加”)` - 然后它会工作.. 。 – 2011-01-28 14:06:23

4

为什么你dont't使用?

 
System.Configuration.ConfigurationManager.AppSettings["Prop1"];