XML序列化问题

时间:2009-03-31 14:00:19

标签: .net xml-serialization

拥有下一种形式的XML:

 <categories someAttribute="test">
  <category id="1">
   <title></title>
  </category>
  <category id="1">
   <title></title>
  </category>
 </categories>

无法更改XML结构。但我想要的是用XMLSerialization替换错误的手动编码XML生成。

请帮助处理这些类别列表。有没有办法指示XML序列化程序不包装类别列表

示例代码:

public class Category
{
    public int Id{get;set;}
}

public class Categories
{
    public List<Category> CategoriesList { get; set; } 
}

3 个答案:

答案 0 :(得分:3)

像这样:

public class Category
{
    [XmlAttribute("id")]
    public int Id { get; set; }

    [XmlElement("title")]
    public string Title { get; set; }
}

[XmlRoot("categories")]
public class Categories
{
    [XmlAttribute("someAttribute")]
    public string SomeValue { get; set; }

    [XmlElement("category")]
    public List<Category> CategoriesList { get; set; }
}

答案 1 :(得分:0)

查看XmlAnyElementAttribute。

答案 2 :(得分:-1)

使用IXmlSerializable接口,您可以自己定义如何编写xml,或者您可以将列表设置为数组我认为它将以您想要的方式编写,但我不确定..