c# - 迭代配置文件以获取设置值

标签 c# xml linq

这是我的配置文件:

    <?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectivity.ExtensionSettings3>
    <extension
     interface="Autodesk.Connectivity.JobProcessor.Extensibility.IJobHandler, Autodesk.Connectivity.JobProcessor.Extensibility"
     type="Job.JobExtension, Job">
      <setting key="JobType1" value="Name1"/>
      <setting key="JobType2" value="Name2"/>
    </extension>
  </connectivity.ExtensionSettings3>
</configuration>

我需要迭代 C# 应用程序中的配置文件以获取名称包含“JobType”的所有设置键值。

这是我正在使用的代码,但它没有返回结果:

    JobNames = xml.Descendants().ToList().Where(xe => xe.Name.LocalName.Contains("JobType")).ToList();

    foreach (System.Xml.Linq.XElement strJobName in JobNames)
    {
        Console.WriteLine(strJobName.Value);
    }

我做错了什么?

最佳答案

首先您需要选择所有“setting”节点。 之后,您需要查询“attribute”“key”。

这是代码:

var JobNames = xml.Descendants("setting").Where(xe => xe.Attribute("key").Value.Contains("JobType")).ToList();

foreach (System.Xml.Linq.XElement strJobName in JobNames)
{
    Console.WriteLine(strJobName.LastAttribute.Value);
}

关于c# - 迭代配置文件以获取设置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57625054/

相关文章:

c# - 在 Gridview 中获取 TemplateFields 的值

c# - 使用 Serializable() 从 XML 文件中填充一个数组

c# - 使用 LINQ 计算嵌套的导航表行

c# - LINQ QueryProvider 选择

c# - 安装 .NET COM+ dll

c# - 在静态类中有状态是不好的做法吗?

c# - Oracle ODP.net 非托管 12.2 (Oracle.DataAccess.dll) 需要哪些依赖项/dll?

java - 如何从 XML 文件中删除多余的空行?

xml - 在 Android 上编写 XML

c# - 需要使用扩展方法/查询语法在 LINQ 中进行左外连接