我只是想从一个 XML 文件中读取一些详细信息,其中一部分如下所示:
<appender name="FILE" class="applications.core.logging.CustomFileAppender">
<param name="File" value="C:\\Logs\\File.log"/>
<param name="MaxBackupIndex" value="5"/>
</appender>
<appender name="FILE" class="applications.core.logging.CustomFileAppender">
<param name="File" value="C:\\Logs\\File2.log"/>
<param name="MaxBackupIndex" value="17"/>
</appender>
<appender name="FILE" class="applications.core.logging.CustomFileAppender">
<param name="File" value="C:\\Logs\\File3.log"/>
<param name="MaxBackupIndex" value="98"/>
</appender>
我的 XML 文件中有几个这样的“附加器”节点。以下代码循环遍历每个“附加器”节点。在每个“附加程序”中,我想选择名称为“文件”的参数节点并检查该值是否等于我正在寻找的值。
foreach (XElement node in XmlFile.Descendants("appender"))
{
IEnumerable<XElement> elements = from el in node.Elements("param")
where el.Attribute("value").ToString().Equals("C:\\Logs\\File.log"))
select el;
foreach (XElement el in elements)
{
Console.WriteLine("Found it " + el.Name);
// Now read value for MaxBackupIndex
}
}
但是我的代码没有打印出任何东西,所以我认为我的 LINQ 查询的“位置”部分可能不正确,有人能发现我哪里出错了吗?