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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |