首页 新闻 搜索 专区 学院

坑爹项目的XML反序列化问题

0
悬赏园豆:40 [已解决问题] 解决于 2013-06-13 17:18

现有一个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类来反序列化。望博客园的高手和热心人支支招。

春.Blog的主页 春.Blog | 初学一级 | 园豆:166
提问于:2013-05-15 17:13
< >
分享
最佳答案
0
//你感受一下
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; }
    }
收获园豆:5
写代码的小2B | 老鸟四级 |园豆:4346 | 2013-05-16 12:37
其他回答(1)
0

这没办法,要手动给它插一个父节点。

先观察数据格式,然后想办法转化为可以反序列化的xml

收获园豆:35
田林九村 | 园豆:2367 (老鸟四级) | 2013-05-15 17:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册