2009-10-08 3 views
0

У меня есть пользовательский XML (специфический для поставщика), который мне нужно для сериализации и десериализации. Формат XML выглядит следующим образомXML-массив сериализации

<RootElement> 
    <childelement>    
     <id/> 
      <description/> 
    </childelement> 
    <childelement> 
     <id/> 
     <description/> 
    </childelement> 
</RootElement> 
  • Корневой элемент также и объект, который содержит список дочерних элементов
  • Детский элемент определен как объект

Обратите внимание, что я не хотите, чтобы дочерние элементы были инкапсулированы другим тегом. Извините, это не мой XML-дизайн :)

+0

ops, xml problem; обязательно замените <на < –

+5

XML * - это формат сериализации. Кажется, вы запрашиваете преобразование формата данных, а не «сериализацию». Просьба привести примеры этого формата XML, а не описание его - и точную форму, в которую вы хотите конвертировать. –

+0

Нашел мое решение - http://www.eggheadcafe.com/forumarchives/NETxml/Jan2006/post25392898.asp – 2009-10-09 12:18:44

ответ

1

Вот пример использования C#. Here - пример, если вам нужно использовать пространства имен 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> 
      */ 
     } 
    } 
} 
Смежные вопросы