我有一个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>
Run Code Online (Sandbox Code Playgroud)
使用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);
Run Code Online (Sandbox Code Playgroud)
如果您只希望添加一个匹配项FirstOrDefault()来获取第一个匹配值.
从您的xml判断,看起来您也可以从投影到字典中受益(如果您的Name元素值是唯一的):
var dictionary = xml.Descendants("MessageDetails")
.ToDictionary(x => x.Element("Name").Value,
x => x.Element("Value").Value);
Run Code Online (Sandbox Code Playgroud)
现在你可以使用字典了:
string value = dictionary["System_ID"];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1015 次 |
| 最近记录: |