C#中如何将一个类用XML序列化后,作为一个节点添加到已存在的xml文件中

问题描述

比如有个Cat类,实例化后,要以xml的格式序列化保存到本地的CatList.xml中,不能覆盖xml文件中原有的数据,只是作为一个新的节点加入。如果加入成功,要以反序列化的方式读取,怎么操作谢谢各位

解决方案

解决方案二:
Serialize对象后appendChild或者insertBefore到新的节点,再Deserialize对象读取。
解决方案三:
建议lz看看如何使用linq操作xml文件。这个不难。
解决方案四:
其实大家的想法我也知道,现实遇到的问题是,序列化和反序列化操作的是流,xml文件操作的是xml节点,我没找到哪个类或哪个方法是可以把这两种类型相互转化的。
解决方案五:
http://blog.csdn.net/jjx0224/article/details/6164128
解决方案六:
引用3楼u013554799的回复:

其实大家的想法我也知道,现实遇到的问题是,序列化和反序列化操作的是流,xml文件操作的是xml节点,我没找到哪个类或哪个方法是可以把这两种类型相互转化的。

序列化操作的是.net内部的对象(包括自定义对象),不是什么“流”。反序列化操作的是流,自然也就就可以方便地变通为string。xml文档处理操作的是xml节点,反操作是string,自然也就可以方便地变通为stream。
解决方案七:
linqtoxml
解决方案八:
XML的序列化和反序列化去MSDN上面就有示例
解决方案九:
路过,寻找中。。。。。。
解决方案十:
把类序列化成流并load到XmlDocument,然后加到另外一个XmlDocument再做保存……using(MemoryStreamms=newMemoryStream()){ClassAtryXml=newClassA{Key="A",Value="1"};XmlSerializerserializer=newXmlSerializer(typeof(ClassA));serializer.Serialize(ms,tryXml);varxmlClass=newXmlDocument();xmlClass.Load(ms);varxmlDocument=newXmlDocument();xmlDocument.Load("C:\temp\cat.xml");xmlDocument.DocumentElement.AppendChild(xmlClass);}

解决方案十一:
using(varms=newMemoryStream()){ClassAtryXml=newClassA{Key="A",Value="1"};XmlSerializerserializer=newXmlSerializer(typeof(ClassA));serializer.Serialize(ms,tryXml);varxmlClass=newXmlDocument();xmlClass.LoadXml(Encoding.UTF8.GetString(ms.ToArray()));varxmlDocument=newXmlDocument();xmlDocument.Load("C:\temp\TryXml.xml");XmlElementelement=xmlDocument.CreateElement("ClassA");element.InnerXml=xmlClass.DocumentElement.InnerXml;xmlDocument.SelectSingleNode("/configuration").AppendChild(element);xmlDocument.Save("C:\temp\TryXml.xml");}

解决方案十二:
读取就是反过来的过程,把读出来的InnerXml变成流,然后反序列化就好了

时间: 2024-10-15 20:30:18

C#中如何将一个类用XML序列化后,作为一个节点添加到已存在的xml文件中的相关文章

封装dll-C# 中如何将一个类文件 封装成.dll文件

问题描述 C# 中如何将一个类文件 封装成.dll文件 我现在在c#程序里面写了几个通用的类,里面包括数据库的操作,网页表单的基本验证以及自己平时总结的一些很好用的方法,我现在想把这些类或者某一个类封装成一个dll文件,最好是所有的类都封装成一个dll,想请问一下各位怎么做,以前没做过将类封装成dll,麻烦大家帮帮小弟,最好有代码,谢谢了! 解决方案 封装成dll不就是将它编译成dll吗? 在bin文件下就有编译的dll 解决方案二: 在VS中新建一个类库工程,把你的类文件导到新建的工程里,编译

有一个节点,我想问在gephi软件中能不能实现一个节点自己与自己创建关联网络

问题描述 有一个节点,我想问在gephi软件中能不能实现一个节点自己与自己创建关联网络 有一个节点,我想问在gephi软件中能不能实现一个节点自己与自己创建关联网络

vs2008中怎样将一个类分写在多个 .cs 文件中?

问题描述 最近在用vs2008,如果一个类太长,想把它分开写在多个文件中,比如,有一个函数很长,想单独放在一个文件中,所有的属性也想单独放在一个文件中,怎样操作呢? 解决方案 解决方案二:partialclassXXX解决方案三:添加一个windows窗体,form1.cs和form1.designer.cs就是很好的例子,照着做就行解决方案四:添加多个类就可以了把类定义为public的,把类和属性也定义为public的如果是全局的变量用static定义,///<summary>///第一个属

如何实现:一个Tab中的List点击某个Item后想把该项添加到另一个tab中的ListView中?

问题描述 一个Tab中的List点击某个Item后如何才能把该项添加到另一个tab中的ListView中?public class Tab2ListAdapter extends BaseAdapter {ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();private LayoutInflater inflater;public Tab2Li

求高手解答~为什么table添加之后不能显示在aspx文件中,还有skin怎么使用啊~求解答~

问题描述 RT~~跪求解答~ 解决方案 解决方案二:该回复于2011-11-30 09:46:44被版主删除解决方案三:把前台代码贴出来看下哈~~解决方案四:引用2楼sfxdawn的回复: 把前台代码贴出来看下哈~~ 不好意思~我调出来了~~那个~~能不能介绍一下那个skin文件怎么用啊~~~还有主题什么的~

.NET对象的XML序列化和反序列化

 序列化的概念 序列化是指一个对象的实例可以被保存,保存成一个二进制串,当然,一旦被保存成二进制串,那么也可以保存成文本串了.比如,一个计数器,数值为2,我们可以用字符串"2"表示.如果有个对象,叫做connter,当前值为2,那么可以序列化成"2",反向的,也可以从"2"得到值为2的计数器实例.这样,关机时序列化它,开机时反序列化它,每次开机都是延续的.不会都是从头开始. 序列化概念的提出和实现,可以使我们的应用程序的设置信息保存和读取更加方便

Asp.Net Web API 2第十三课——ASP.NET Web API中的JSON和XML序列化

原文:Asp.Net Web API 2第十三课--ASP.NET Web API中的JSON和XML序列化 前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html 本文描述ASP.NET Web API中的JSON和XML格式化器. 在ASP.NET Web API中,媒体类型格式化器(Media-type Formatter)是一种能够做以下工作的对象: 从HTTP消息体读取

Java ClassLoader基础及加载不同依赖 Jar 中的公共类

本文主要介绍 ClassLoader 的基础知识,ClassLoader 如何动态加载 Jar,ClassLoader 隔离问题及如何加载不同 Jar 中的公共类. 本文工程开源地址见:Java Dynamic Load Jar@Github,Clone 以后直接以 Java Application去运行 java-dynamic-loader-host 工程即可. 其实本文只是 Android 插件化的一个引子,做过 Android 插件化的同学,可以试试对于 Android Support

“灰色”在Web交互设计中的8类应用

在进行Web的交互设计中,颜色信息的传达也是不可或缺的一部分.我们常会发现许多"灰色"的应用,他们的出现总是不动声色而又恰如其分,维持了整个页面的平衡与统一.本文将从一些实际案例出发,阐述"灰色"在Web交互设计中的8类应用. 首先让Mr.Gray 来做个简单的自我介绍吧: 狭义的 Mr.Gray 狭义的Mr.Gray, 是指没有色相与纯度,只有明度,将黑色和白色混和而成的一种中间色. 依据不同分类方法可大体分为浅灰与深灰两种,亦可分为暖灰与冷灰. 相对来说,其特征