使用序列化创建XML文件

时间:2009-10-21 08:12:37

标签: c# xml-serialization

我想创建一个具有以下结构的XML文件。任何人都可以给我一个可以序列化/反序列化这个XML的类吗?

<Disposition>
    <DispositionTextList Description="">
        <DispositionText value="">
        <DispositionText value="">
    </DispositionTextList>
    <DispositionTextList Description="">
        <DispositionText value="">
        <DispositionText value="">
    </DispositionTextList>
</Disposition>

3 个答案:

答案 0 :(得分:6)

XElement element = new XElement("Disposition",new XElement("DispositionTextList",
new XAttribute("Description",""),new XElement("DispositionText",
new XAttribute("value","")),XElement("DispositionText",
new XAttribute("value",""))),new XElement("DispositionTextList",
new XAttribute("Description",""),new XElement("DispositionText",
new XAttribute("value","")),XElement("DispositionText",new XAttribute("value","")))) 

您可以在C#中使用XDocument API,它也是可枚举的,这意味着您可以使用LINQ枚举来访问和操作xml文件。

所以要将其保存到文件中:

element.Save("path");或者您甚至可以使用其他重载来使用文本编写器或输出流。

答案 1 :(得分:1)

到目前为止,了解这一点的最佳方法是发挥作用 - 内置的序列化方法在MSDN库(在线)中有详细记录,包括应该足以满足上述复杂程度的示例。 / p>

使用XML中的属性可能会使您的生活变得有些复杂,但您可以在类中添加注释来控制元素的输出方式

事实上,Aaron提供的链接是您需要的起点。

答案 2 :(得分:0)

您是否需要特定格式的数据,或者您是否只需要XML格式的数据。我同意Murph的观点。我将研究内置的XML序列化函数。

这是一个关于序列化的好教程

http://www.diranieh.com/NETSerialization/XMLSerialization.htm

所以基本上你创建了一个具有公共属性的类,用于存储的数据。然后根据类创建XMLSerializer实例,并使用它将类的任意数量的实例序列化为XML文件。