【问题标题】:XML serialization arrayXML序列化数组
【发布时间】:2009-10-08 15:30:55
【问题描述】:

我有一个自定义 XML(特定于供应商),我需要对其进行序列化和反序列化。 XML的格式如下

<RootElement> 
    <childelement>              
         <id/>
          <description/>
    </childelement>
    <childelement>
         <id/>
         <description/>
    </childelement>
</RootElement>
  • 根元素也是包含子元素列表的对象
  • 子元素被定义为一个对象

请注意,我不希望子元素被另一个标签封装。抱歉,这不是我的 XML 设计 :)

【问题讨论】:

  • 操作,xml 问题;请务必将
  • XML 一种序列化格式。您似乎要求进行数据格式转换,而不是“序列化”。请给出这种 XML 格式的示例——不是对其的描述——以及您希望将其转换成的确切格式。

标签: xml arrays serialization


【解决方案1】:

这是一个使用 C# 的示例。如果您需要使用 XML 命名空间,Here 是一个示例。

[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>
             */
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-12
    • 2016-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多