现有一个XML如下:
<xml version="1.0" encoding="utf-8">
<root>
<fieldA>AAA</fieldA>
<fieldB>B01</fieldB>
<fieldB>B02</fieldB>
<fieldB>B03</fieldB>
<fieldB>...</fieldB>
</root>
坑爹的地方:fieldB的数量不定,而且N个fieldB没有父节点,假如有父节点<fieldBs></fieldBs>包含住N个fieldB节点,那就可以在root下定义一个类型是集合或者数组的字段来反序列化,可是现在没有这样的父节点,实在想不出这里该如何定义一个root类来反序列化。望博客园的高手和热心人支支招。
//你感受一下 class Program { static void Main(string[] args) { String xml = @"<root> <fieldA>AAA</fieldA> <fieldB>B01</fieldB> <fieldB>B02</fieldB> <fieldB>B03</fieldB> <fieldB>...</fieldB> </root>"; var xs = new XmlSerializer(typeof(Root)); using (var reader = new StringReader(xml)) { var result = xs.Deserialize(reader) as Root; } Console.ReadKey(); } } [XmlRoot("root")] public class Root { [XmlElement("fieldA")] public String Field { get; set; } [XmlElement("fieldB")] public List<String> Fields { get; set; } }
这没办法,要手动给它插一个父节点。
先观察数据格式,然后想办法转化为可以反序列化的xml