gpt4 book ai didi

C# 使用 LINQ 解析简单的 XML 文件

转载 作者:数据小太阳 更新时间:2023-10-29 02:15:53 25 4
gpt4 key购买 nike

我有这个非常简单的 xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<ConfigurationFile>
<ConfigurationFilePath>Test1</ConfigurationFilePath>
<ConnectionString>Test2</ConnectionString>
<AnalyzeFilePath>Test3</AnalyzeFilePath>
</ConfigurationFile>

我想获取每个字段的信息。但这不显示任何内容..

下面是我的 C# 代码:

private void ParseXMLFile()
{
Console.WriteLine("Parse");
if (configurationPAthFileTextbox.Text != null)
{
Console.WriteLine("file != null");
try
{
XElement main = XElement.Load(configurationPAthFileTextbox.Text);

var results = main.Descendants("ConfigurationFile")
.Select(e => new { ConfigurationFilePath = e.Descendants("ConfigurationFilePath").FirstOrDefault().Value,
ConnectionString = e.Descendants("ConnectionString").FirstOrDefault().Value });

foreach (var result in results)
Console.WriteLine("{0}, {1}", result.ConfigurationFilePath, result.ConnectionString);
Console.ReadLine();

}
catch (Exception e)
{
Debug.WriteLine(e.ToString());
}
}
}

最佳答案

  1. 加载为 XDocument ,因为它是文档,而不是元素。

    var xDoc = XDocument.Load(configurationPAthFileTextbox.Text);
  2. 您可以轻松地将文档转换为 Dictionary<string, string>以元素名称作为键,元素值作为值:

    var results = xDoc.Root
    .Elements()
    .ToDictionary(e => e.Name, e => (string)e);
  3. 打印 ConfigurationFilePathConnectionString :

    Console.WriteLine("{0}, {1}", results["ConfigurationFilePath"], results["ConnectionString"]);

    打印 Test1, Test2 .

关于C# 使用 LINQ 解析简单的 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21940173/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com