加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 00:10:40 所属栏目:百科 来源:网络整理
导读:我有这个非常简单的xml文件: ?xml version="1.0" encoding="UTF-8"?ConfigurationFile ConfigurationFilePathTest1/ConfigurationFilePath ConnectionStringTest2/ConnectionString AnalyzeFilePathTest3/AnalyzeFilePath/ConfigurationFile 我想获得每个领
我有这个非常简单的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());
        }
    }
}

解决方法

>将其加载为XDocument,因为它是文档,而不是元素.

var xDoc = XDocument.Load(configurationPAthFileTextbox.Text);

>您可以轻松地将文档转换为字典< string,string>将元素名称作为键,将元素值作为值:

var results = xDoc.Root
                  .Elements()
                  .ToDictionary(e => e.Name,e => (string)e);

>要打印ConfigurationFilePath和ConnectionString:

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

打印Test1,Test2.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读