2009-10-08 13 views
0

J'ai un code XML personnalisé (spécifique au fournisseur) que je dois sérialiser et désérialiser. Le format XML est le suivantTableau de sérialisation XML

<RootElement> 
    <childelement>    
     <id/> 
      <description/> 
    </childelement> 
    <childelement> 
     <id/> 
     <description/> 
    </childelement> 
</RootElement> 
  • élément racine est aussi et objet qui contient une liste d'éléments enfant
  • élément enfant est défini comme un objet

Notez que je ne voulez que les éléments enfants soient encapsulés par une autre balise. Désolé ce n'est pas ma conception XML :)

+0

opérations, problème xml; assurez-vous de remplacer

+5

XML * est * un format de sérialisation. Vous semblez demander une conversion de format de données plutôt qu'une "sérialisation". Veuillez donner des exemples de ce format XML - pas une description de celui-ci - et la forme exacte que vous voulez convertir. –

+0

Trouvé ma solution - http://www.eggheadcafe.com/forumarchives/NETxml/Jan2006/post25392898.asp –

Répondre

1

Voici un exemple utilisant C#. Here est un exemple si vous devez utiliser des espaces de noms XML.

[XmlRoot("RootElement")] 
public class MyObject 
{ 
    [XmlElement("childelement")] 
    public MyChild[] Children { get; set; } 
} 
public class MyChild 
{ 
    [XmlElement("id")] 
    public int ID { get; set; } 
    [XmlElement("description")] 
    public string Description { get; set; } 
} 

class Program 
{ 
    static void Main(string[] args) 
    { 
     var xser = new XmlSerializer(typeof(MyObject)); 
     using (var ms = new MemoryStream()) 
     { 
      var myObj = new MyObject() 
      { 
       Children = new[]{ 
        new MyChild(){ ID=0, Description="Hello"}, 
        new MyChild(){ ID=1, Description="World"} 
       } 
      }; 
      xser.Serialize(ms, myObj); 
      var res = Encoding.ASCII.GetString(ms.ToArray()); 
      /* 
       <?xml version="1.0"?> 
       <RootElement> 
        <childelement> 
        <id>0</id> 
        <description>Hello</description> 
        </childelement> 
        <childelement> 
        <id>1</id> 
        <description>World</description> 
        </childelement> 
       </RootElement> 
      */ 
     } 
    } 
} 
Questions connexes