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 ファイルには、これらの「appender」ノードがいくつかあります。次のコードは、各「appender」ノードをループします。各「appender」内で、「File」という名前の param ノードを選択し、その値が探しているものと等しいかどうかを確認します。
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 クエリの 'where' 部分が間違っている可能性があります。