在C#中查询XML的最佳方法 – 使用LINQ等
发布时间:2020-12-16 01:51:03 所属栏目:百科 来源:网络整理
导读:我有一个xml消息,我需要解析(无格式控制),看起来像我需要处理的下面(名称/价值对).什么是查询Name = x和获取相关值的值的最佳方法? 我目前正在使用嵌套选择来尝试从特定的名称/值对中获取值.只是想知道我是否可以使用更简单的LINQ / Lambda调用. 任何建议,
我有一个xml消息,我需要解析(无格式控制),看起来像我需要处理的下面(名称/价值对).什么是查询Name = x和获取相关值的值的最佳方法?
我目前正在使用嵌套选择来尝试从特定的名称/值对中获取值.只是想知道我是否可以使用更简单的LINQ / Lambda调用. 任何建议,将不胜感激. <Message> <MessageContent> <MessageDetails> <Name>System_ID</Name> <Value>12345</Value> </MessageDetails> <MessageDetails> <Name>System_Name</Name> <Value>Test System</Value> </MessageDetails> </MessageContent> </Message> 解决方法
使用Linq到XML:
var xml = XElement.Load(someXmlFile); var results = xml.Descendants("MessageDetails") .Where(m => m.Element("Name").Value == someValue) .Select(m => m.Element("Value").Value); 如果您只希望一个匹配,请添加FirstOrDefault()以获取第一个匹配值. 从您的xml判断,看起来您也可以从投影到字典中受益(如果您的Name元素值是唯一的): var dictionary = xml.Descendants("MessageDetails") .ToDictionary(x => x.Element("Name").Value,x => x.Element("Value").Value); 现在你可以使用字典了: string value = dictionary["System_ID"]; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |