我使用xsd从XML模式生成类。我如何将它们写回XML?

问题描述:

XML模式指定文件的索引。以下是XML文件应该如何的示例。我使用xsd从XML模式生成类。我如何将它们写回XML?

<?xml version="1.0" encoding="utf-8"?> 
<fIndex xsi:schemaLocation="http:address fIndex.xsd" xmlns="address" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <f> 
    <foN>SomeDir</foN> 
    <fiN>file1.txt</fiN> 
    </f> 
    <f> 
    <foN>SomeDir</foN> 
    <fiN>file2.txt</fiN> 
    </f> 
</fIndex> 

我用xsd来创建XML所需的类。然后填入一些示例代码以匹配上面的示例。

class Program 
    { 
     static void Main(string[] args) 
     { 
      fileIndexType table = new fileIndexType(); 

      fileIndexTypeF element1 = new fileIndexTypeF(); 
      fileIndexTypeF element2 = new fileIndexTypeF(); 

      element1.fiN = @"C:\SomeDir"; 
      element1.foN = @"file1.txt"; 
      element2.fiN = @"C:\SomeDir"; 
      element2.foN = @"file2.txt"; 

      fileIndexTypeF[] files = new fileIndexTypeF[2] { element1, element2 }; 
      table.f = files; 
     } 
    } 

如何创建上述XML文件?

您需要serialize这个对象。

XmlSerializer类可用于这样的:

XmlSerializer serializer = new XmlSerializer(typeof(fileIndexType)); 
using(Stream writer = new FileStream(filename, FileMode.Create)) 
{ 
    serializer.Serialize(writer, table); 
    writer.Close(); 
} 
+0

哇。这工作。非常感谢。 – 2010-11-19 14:56:05

+0

@Kasper Hansen - 逆向过程(从诸如XML文件等文件中提取对象图)称为反序列化。 – Oded 2010-11-19 14:58:51

+0

是的。谢谢。我有点失落。现在我知道该读什么。 – 2010-11-19 15:18:20