c# - 如何将 XML 字符串读入列表或任何集合

标签 c# xml linq collections

我有类似的字符串

xmlDataEntAddAttr = @"<ADDITIONAL INFO>
                            <Host> Test Host Name </Host>
                            <IP Address>Test IP Address</IP Address>
                            <Domain>Test Domain</Domain>
                            <Host Method>Test Host Method</Host Method>
                            <Flag>Test Flag</Flag>
                      </ADDITIONAL INFO>";

我如何将其读入一个包含标签名称和值的字符串列表或任何集合中。 请不要像<Host></Host>这样的内部标签可以是任何值,这里只有常量是根的意思 <ADDITIONAL INFO></ADDITIONAL INFO> .

请建议任何解析方法。

最佳答案

使用 XDocument(在 System.Xml.Linq 命名空间中)和 Linq to Xml。

XDocument xDocument = XDocument.Parse(xmlDataEntAddAttr);
Dictionary<string, string> result = xDocument.Root.Elements().ToDictionary(element => element.Name.LocalName, element => element.Value);

但是,您的字符串不是有效的 XML。 XML 元素名称中不能有空格。您的字符串的有效版本是:

xmlDataEntAddAttr = @"<ADDITIONAL_INFO>
                            <Host> Test Host Name </Host>
                            <IP_Address>Test IP Address</IP_Address>
                            <Domain>Test Domain</Domain>
                            <Host_Method>Test Host Method</Host_Method>
                            <Flag>Test Flag</Flag>
                      </ADDITIONAL_INFO>";

关于c# - 如何将 XML 字符串读入列表或任何集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14647063/

相关文章:

c# - 使用 Npgsql 插入重复记录

xml - 如何使用MarkupBuilder为数据库中的每条记录创建一个XML文件?

c# - LINQ 查询返回第一个结果的多个副本

c# - 如何从linq中的多个日期列中获取最小值?

c# - 有没有办法使用 Linq 将 IEnumerable 组织成列主要格式的批处理?

c# - 使用授权管理器 (AzMan) 获取属于某个角色的用户列表

c# - 在 ASP.NET MVC 4 架构注意事项中上传和处理 CSV 文件

c# - 如何使用 Asp.net 设置 .asmx web 服务启用跨源

ruby - 在 ruby​​ 中创建大文件 xml

C# 从 HTML Body 解析 XML 并保存到文件