0

我有这个 app.config 文件:

 <?xml version="1.0" encoding="utf-8" ?>
 <configuration>
  <appSettings>

    <add key="domain" value="localhost"/>

    <add key="hostname" value="hostpc"/>

 </appSettings>
 </configuration>

我正在使用此 LINQ to XML 查询来获取名为“域”的键的值。例如,当我说我想获取名为“domain”的键的值时,它应该给我“localhost”:

var domain = (from appNode in xmlElement.Elements("add")
                     where appNode.Attribute("key").Value == "domain"
                     select appNode.Attribute("value"));

但是我的查询缺少一些东西,任何人都可以识别我缺少什么或如何使它变得更好,它目前不起作用。

注意:我只想使用 linq to xml

4

2 回答 2

0

尝试使用这个:

    XElement doc = XElement.Load("ConsoleApplication1.exe.config");

    var domain = (from appNode in doc.Element("appSettings").Elements("add")
                  where appNode.Attribute("key").Value == "domain"
                  select appNode.Attribute("value").Value).FirstOrDefault();
于 2013-04-18T04:38:40.233 回答
0

我按原样使用了您的 app.config 文件内容,使用以下代码编写了一个基于控制台的小型应用程序:

class Program
{
    static void Main(string[] args)
    {
        // Create the query 
        var nodes = from appNode in XElement.Load("App.config").Descendants("appSettings").Elements()
                    where appNode.Attribute("key").Value == "domain"
                    select appNode;

        var element = nodes.FirstOrDefault();
        string value = element.Attribute("value").Value;

        Console.WriteLine(value);

        //Pause the application 
        Console.ReadLine();
    }
}

输出是:本地主机

希望这可以帮助。如果它在您的机器上不起作用,请分享错误详细信息。

于 2013-04-18T04:47:30.560 回答