在XML文件中抓取值时出现问题 结构如下
<configuration>
<settings>
<add key="folder" value = "c:\...." />
</settings>
</configuration>
我希望能够从文件夹中读取值。
string val = string.Empty;
foreach (XElement element in XElement.Load(file).Elements("configuration"))
{
foreach (XElement element2 in element.Elements("settings"))
{
if (element2.Name.Equals("folder"))
{
val = element2.Attribute(key).Value;
break;
}
}
}
return val;
答案 0 :(得分:2)
元素的名称不是folder
...这是key
属性的值。另请注意,当您使用XElement.Load
时,元素 configuration
元素 - 要求Elements("configuration")
会为您提供一个空集合。您可以加载XDocument
,或者只是假设您在configuration
元素上,并在settings
下方查看。
我想你想要:
return XElement.Load(file)
.Elements("settings")
.Elements("add")
.Where(x => (string) x.Attribute("key") == "folder")
.Select(x => (string) x.Attribute("value"))
.FirstOrDefault();
答案 1 :(得分:1)
您可以使用XPath:
var folder = XElement.Load(file)
.XPathSelectElements("/settings/add[@key='folder']")
.Select(a => (string)a.Attribute("value"))
.FirstOrDefault();