帮我看看这个怎么序列化和反序列化成XML

问题描述

我程序里要用到几种自定义的对象,一共是9个对象。每一个对象有不同的属性(我把它定义成结构体了)。其中对象1的属性是结构体LEDWindowsAttribute对象2、对象3的属性是结构体TextWindowsAttribute对象4、对象5、对象6、对象7、对象8、对象9的属性是结构体TimeWindowsAttribute对象1是父节点(只有一个)对象2------对象8是子节点。我通过程序上的按钮操作动态的增加或删除子节点(用TreeView显示父节点和子节点,子节点里有重复对象比如有3个对象2,且子节点数量可能很多)。我怎么才能将节点关系及对象属性序列化并存储成XML格式的文件,怎么反序列化XML文件解析还原得到TreeView上的树状结构和各个节点的属性。希望大神给出思路和代码,小弟不胜感激!TreeView上的表现形式如下所示对象1的NodeText值|----对象2的NodeText值|----对象3的NodeText值|----对象4的NodeText值|----对象5的NodeText值|----对象2的NodeText值|----对象6的NodeText值|----对象3的NodeText值。。。。。。//////单行文字和多行文字对象窗口的属性///publicstructTextWindowsAttribute{[XmlAttribute("NodeName")]publicstringNodeName;//节点名字[XmlElement("NodeText")]publicstringNodeText;//节点文本[XmlElement("NodeIndex")]publicintNodeIndex;//节点序号[XmlElement("X")]publicintX;//X坐标[XmlElement("Y")]publicintY;//Y坐标[XmlElement("Width")]publicintWidth;//宽度[XmlElement("Height")]publicintHeight;//高度[XmlElement("Text")]publicstringText;//文字[XmlElement("FontName")]publicstringFontName;//字体[XmlElement("FontSize")]publicfloatFontSize;//字号[XmlElement("FontBold")]publicboolFontBold;//是否粗体[XmlElement("FontItalic")]publicboolFontItalic;//是否斜体[XmlElement("FontUnderline")]publicboolFontUnderline;//是否有下划线[XmlElement("FontColor")]publicintFontColor;//文字颜色}//////时间对象窗口的属性///publicstructTimeWindowsAttribute{[XmlAttribute("NodeName")]publicstringNodeName;//节点名字[XmlElement("NodeText")]publicstringNodeText;//节点文本[XmlElement("NodeIndex")]publicintNodeIndex;//节点序号[XmlElement("X")]publicintX;//X坐标[XmlElement("Y")]publicintY;//Y坐标[XmlElement("Width")]publicintWidth;//宽度[XmlElement("Height")]publicintHeight;//高度[XmlElement("FontName")]publicstringFontName;//字体[XmlElement("FontSize")]publicfloatFontSize;//字号[XmlElement("FontBold")]publicboolFontBold;//是否粗体[XmlElement("FontItalic")]publicboolFontItalic;//是否斜体[XmlElement("FontUnderline")]publicboolFontUnderline;//是否有下划线[XmlElement("FontColor")]publicintFontColor;//文字颜色}//////LED显示屏对象窗口的属性///publicstructLEDWindowsAttribute{[XmlAttribute("NodeName")]publicstringNodeName;//节点名字[XmlElement("NodeText")]publicstringNodeText;//节点文本[XmlElement("NodeIndex")]publicintNodeIndex;//节点序号[XmlElement("X")]publicintX;//X坐标[XmlElement("Y")]publicintY;//Y坐标[XmlElement("Width")]publicintWidth;//宽度[XmlElement("Height")]publicintHeight;//高度}

解决方案

解决方案二:
自己顶一个
解决方案三:
http://www.cnblogs.com/yukaizhao/archive/2011/07/22/xml-serialization.html

时间: 2024-09-14 03:48:29

帮我看看这个怎么序列化和反序列化成XML的相关文章

android-为什么一个序列化的栈能反序列化成一个ArrayList

问题描述 为什么一个序列化的栈能反序列化成一个ArrayList 序列化: Bundle activityArguments = new Bundle(); Stack<Class<? extends WizardStep>> wizardSteps = new Stack<Class<? extends WizardStep>>(); wizardSteps.push(CreateAlarmStep5View.class); wizardSteps.pus

C# 实体类序列化与反序列化二 (DataContractSerializer)

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.Serialization; using System.IO; using System.Xml; namespace Common.Utility.XMLSerialization { /// <summary> /// DataContractSerializer /// <

xml 反序列化成 datatable

问题描述 传入参数:stringstrXml="<StockInDetails><StockInDetail><id>2615905</id><pid>502649</pid><ownerId>4332</ownerId><ownerCode>3122446934</ownerCode><ownerName></ownerName><billNo&

用fastjson,把一个JSON字符串反序列化成Map的错误。

问题描述 用fastjson,把一个JSON字符串反序列化成Map的错误. 解决方案 需要用snmp4j开发一个网管系统,现在手头已经有了一台H3C的测试设备,和他们厂家的私有MIB库文件. 用从网上找到的代码,使用snmp的get方式已经可以取到设备的"设备名称"."设备地址"等信息.设备名称信息如下: 1.3.6.1.2.1.1.1.0 = H3C Comware Platform Software, Software Version 5.20, Release

net-使用Newtonjson.soft怎样将如下的JSON,反序列化成UserInfo对象

问题描述 使用Newtonjson.soft怎样将如下的JSON,反序列化成UserInfo对象 ""{""Dict"":{""User"":{""userDepartID"":99""userName"":""admin""}}""Timeout""

使用fastjson,把一个JSON字符串反序列化成Map的错误。

问题描述 用的fastjons的版本是: 1.1.41json字符串如下:{ "user_id": 5300, "flag": 0, "configs": [ { "user_id": 5300, "config_item_id": 1015, "type": 0 }, { "user_id": 5300, "config_item_id": 10

java序列化和反序列话总结

序列化:将java对象转换为字节序列的过程叫做序列化 反序列化:将字节对象转换为java对象的过程叫做反序列化 通常情况下,序列化有两种用途:. 1) 把对象的字节序列永久的保存在硬盘中 2)在网络上传输对象的字节序列 相应的API java.io.ObjectOutputStream writeObject(Object obj) java.io.ObjectInputStream readObject() 只有实现了Serializable或者Externalizable接口的类的对象才能够

对象序列化反序列化为xml

序列化对象为xml: /// <summary> /// 序列化对象 /// </summary> /// <typeparam name="T">对象类型</typeparam> /// <param name="t">对象</param> /// <returns></returns> public static string Serialize<T>(T

python使用pickle,marshal进行序列化、反序列及JSON的使用

Pickle序列化         python的pickle模块实现了基本的数据序列和反序列化.通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储:通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象 JSON(JavaScript Object Notation)          json是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programming Language,