首页 / XML / 在C#中将xml内容转换为键值对
在C#中将xml内容转换为键值对
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在C#中将xml内容转换为键值对,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1457字,纯文字阅读大概需要3分钟。
内容图文
有没有一种方法可以以更简单的方式将xml转换为键值对,而无需遍历每个节点和元素
我的XML结构与此类似
<root>
<StandardValues>
<ButtonYES alias="customname value">Ja</ButtonYES>
<ButtonNO>Nei</ButtonNO>
</StandardValues>
<Page1>
<Key_Head>2011 Applications</Key_Head>
<Key_Title>Title from 2011</Key_Title>
<Key_Param1>Parameter value</Key_Param1>
</Page1>
<Page2>
<Page_Head>2011 Applications</Page_Head>
<page_Title>Title from 2011</page_Title>
<CustomParam1>Parameter value</CustomParam1>
</Page2>
</root>
显而易见,ElementNode名称和子xml节点名称本质上不是统一的,可以是任何名称[xml标签[,也可以是任何数量的子项目
XML转换的思想是为最终对象为Dic的应用程序启用翻译
从XML转换为键值对列表的最佳方法是什么
我试过了
var maping = doc.Descendants("Page1")
.Elements()
.ToDictionary(d => (string)d.Name.LocalName,
d => (string)d.Value);
但是它只返回了一组set1我们可以为所有根的孩子创建它吗
使用这种方法,我可以将其读取到具有3个属性的类中
var maping = doc.Descendants("Page1")
.Elements().Select(d => new
{
Attribute = (string)d.Name.LocalName,
Value = d.Value, // equal to id you are searching for
Key = (d.Attribute("alias") != null) ? d.Attribute("alias").Value : ""
}).ToList();
foreach (var s in maping)
{
string ss = string.Format("{0} - {1} && {2}", s.Key, s.Value, s.Attribute);
}
解决方法:
不知道您是否已经尝试过,
var doc = XDocument.Load(yourXML);
var maping = doc.Root.Elements()
.ToDictionary(a => (string)a.Attribute("key"),
a => (string)a.Attribute("replaceWith"));
还有其他方法,我发现这更快.
内容总结
以上是互联网集市为您收集整理的在C#中将xml内容转换为键值对全部内容,希望文章能够帮你解决在C#中将xml内容转换为键值对所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。