2014-12-03 54 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中(只添加課程)或不添加(添加整個節點)