2011-01-28 109 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"];