2014-12-03 61 views
-1

的XML序列化我有一个包含以下信息的数据表。自定义数据集

enter image description here

我想写这个数据表,XML,所以我用了WriteXml方法,所产生如下XML

<?xml version="1.0" standalone="yes"?> 
<DocumentElement> 
    <Person> 
    <Name>Person1</Name> 
    <Contact>Fred Nurk</Contact> 
    <CourseName>Course 1</CourseName> 
    <CourseTime>09:00</CourseTime> 
    </Person> 
    <Person> 
    <Name>Person1</Name> 
    <Contact>Fred Nurk</Contact> 
    <CourseName>Course 2</CourseName> 
    <CourseTime>10:00</CourseTime> 
    </Person> 
</DocumentElement> 

我想XML以相同的课程相结合人使xml看起来像下面

<?xml version="1.0" standalone="yes"?> 
<DocumentElement> 
    <Person> 
    <name>Person1</name> 
    <contact>Fred Nurk</contact> 
     <Courses> 
     <Course> 
      <courseName>Course 1</courseName> 
      <courseTime>09:00</courseTime> 
     </Course> 
     <Course> 
      <courseName>Course 2</courseName> 
      <courseTime>10:00</courseTime> 
     </Course> 
     </Courses>  
    </Person> 
</DocumentElement> 

任何帮助,将不胜感激。

+0

为什么我得到-1,请解释一下? – 2014-12-03 08:47:22

回答

0

我觉得你有你的数据与列

<name> <contact> <coursename1> <coursetime1> <coursename2> <coursetime2> <coursenameX> <coursetimeX> <coursenameX> <coursetimeX> <..and so on> 

复制到一个临时表,写这XML

0

我认为你的情况,你应该实现IXmlSerializable,让你的XML只要你想

实现方法

public XmlSchema GetSchema() 
{ 
    return null; //this should remain equal 
} 

public void ReadXml(XmlReader reader) 
{ 
    throw new NotImplementedException(); 
} 

public void WriteXml(XmlWriter writer) 
{ 
    //group your list of Person as you want then 
    foreach (Person person in list) 
    { 
     writer.WriteStartElement("Persons"); 
     person.WriteXml(writer); 
     writer.WriteEndElement(); 
    } 
} 

WriteXml函数你可以检查每个元素,如果人已经在xml中(只添加课程)或不添加(添加整个节点)