在获取元素中某些属性的值时,这个链接到XML查询中出现了一些问题
本文关键字:查询 XML 链接 问题 元素 获取 属性 | 更新日期: 2023-09-27 18:09:59
我有这个app.config文件:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="domain" value="localhost"/>
<add key="hostname" value="hostpc"/>
</appSettings>
</configuration>
我使用这个LINQ到XML查询来获取键名为"域"的值。例如,当我说我想获得键名为"域"的值,它应该给我"localhost":
var domain = (from appNode in xmlElement.Elements("add")
where appNode.Attribute("key").Value == "domain"
select appNode.Attribute("value"));
但是我的查询缺少一些东西,任何人都可以确定我缺少什么或如何才能做得更好,它目前不起作用。
注意:我只想使用linq到xml
我使用你的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();
}
}
输出为:localhost
希望这对你有帮助。如果它不能在您的机器上工作,请共享错误详细信息。
试试这个:
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();