首页
诗词
字典
板报
句子
名言
友答
励志
学校
网站地图
XML SOAP
Dreamweaver
Fireworks
Flash
ASP
asp.net
PHP
JSP
SEO优化
源码建站
CSS
Web开发
Web前端
JavaScript
vbScript
Ajax
网页设计
跨浏览器开发
高性能WEB开发
Web Service
XML SOAP
当前位置:
首页
>
教程频道
>
网站开发
>
XML SOAP
>
序列化跟LINQ to XML处理XML
2012-06-22
序列化和LINQ to XML处理XML整理了两种读写XML文件的方法:序列化和LINQ to XML。WPF写了个简单的例子。1,Mai
序列化和LINQ to XML处理XML
整理了两种读写XML文件的方法:序列化和LINQ to XML。WPF写了个简单的例子。
1,MainWindow.xaml源码
/// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary> public partial class MainWindow : Window { private ClassDemo demo = new ClassDemo(); public MainWindow() { InitializeComponent(); demo.Name = "myname"; demo.Members = new List<string> { "成员一", "成员二" }; demo.Children = new List<ClassChild>{ new ClassChild(){ID="1",Name="Child 1"}, new ClassChild(){ID="2",Name="Child 2"}}; } /// <summary> /// 反序列化加载 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Button_Click_1(object sender, RoutedEventArgs e) { XmlSerializer serializer = new XmlSerializer(typeof(ClassDemo)); StreamReader sr=null; try { sr = new StreamReader("XmlDemo.xml"); ClassDemo item = serializer.Deserialize(sr) as ClassDemo; MessageBox.Show("加载成功!"); } catch (Exception) { MessageBox.Show("如果文件不存在,请先保存!"); } finally { if (sr != null) sr.Close(); } } /// <summary> /// 序列化保存 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Button_Click_2(object sender, RoutedEventArgs e) { XmlSerializer serializer = new XmlSerializer(typeof(ClassDemo)); StreamWriter sw = null; try { sw = new StreamWriter("XmlDemo.xml"); serializer.Serialize(sw, demo); MessageBox.Show("保存成功!"); } catch (Exception) { } finally { if (sw != null) { sw.Close(); } } } /// <summary> /// Linq方式加载 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Button_Click_3(object sender, RoutedEventArgs e) { //ClassDemo作为根节点会出现找不到的情况,所以加了个Config根节点 List<ClassDemo> _demo = (from item in XElement.Load("XmlDemo2.xml").Elements("ClassDemo") select new ClassDemo() { Name = item.Element("Name").Value, Members = (from mem in item.Element("Members").Elements() select mem.Value).ToList(), Children = (from child in item.Element("Children").Elements() select new ClassChild() { ID = child.Element("ID").Value, Name = child.Element("Name").Value }).ToList() } ).ToList(); MessageBox.Show("加载成功!"); } /// <summary> /// Linq方式保存 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Button_Click_4(object sender, RoutedEventArgs e) { XElement doc=new XElement("Config",new XElement("ClassDemo", new XElement("Name",demo.Name), new XElement("Members",from c in demo.Members select new XElement("string",c)), new XElement("Children",from d in demo.Children select new XElement("ClassChild", new XElement("ID",d.ID), new XElement("Name",d.Name))))); doc.Save("XmlDemo2.xml"); MessageBox.Show("保存成功!"); } }
源码下载
查看更多
下一篇
本文网址:
https://www.reader8.net/jiaocheng/20120622/1366331.html
读书人精选
热点排行
用xml文件动态改变页面标题(通过xml文件
用gsoap可以实现让web server主动向we
征集Properties支持xml格式,该怎么解决
oracle xmltype 创造 、插入、更新、查找
怎么在VC++6.0中解析XML文件?多谢
sax解析xml尤其是获取元素的值也许内容
Objective-c解析XML打包
Android札记(三):AndroidManifest.xml文
Struts2中相关struts-default.xml,strut
spring怎么在xml里配置Calendar,Date