首页 新闻 会员 周边

根据动态数据源生成XML文档

0
悬赏园豆:15 [已解决问题] 解决于 2012-07-20 15:18

现有如下数据,要根据如下数据生成XML文档,怎么生成

 

年度 问题类型 金额
2011 财务管理 1111.00
2011 招投标管理 200111.00
2012 财务管理 51856.14
2012 工程量计量 123.00
2012 合同执行 497.00
2012 会计基础 6085.82
2012 建设程序 30.35
2012 其他问题 12.00
2012 招投标管理 10837.75

 

 

<chart caption='Country Comparison' shownames='1' showvalues='0' decimals='0' numberPrefix='$'>
<categories>
    <category label='2011' />
    <category label='2012' />
</categories>
<dataset seriesName='财务管理' color='AFD8F8' showValues='0'>
    <set value='1111.00' />
    <set value='51856.14' />
</dataset>
<dataset seriesName='招投标管理' color='F6BD0F' showValues='0'>
    <set value='20111.00' />
    <set value='10837.75' />
</dataset>
<dataset seriesName='工程量计量' color='8BBA60' showValues='0'>
    <set value='0' />
    <set value='123.00' />
</dataset>
<dataset seriesName='合同执行' color='8BBA80' showValues='0'>
    <set value='0' />
    <set value='496.99' />
</dataset>
<dataset seriesName='会议基础' color='87BA00' showValues='0'>
    <set value='0' />
    <set value='6085.81' />
</dataset>
<dataset seriesName='建设程序' color='8B5A00' showValues='0'>
    <set value='0' />
    <set value='30.35' />
</dataset>
<dataset seriesName='其它问题' color='8B3A00' showValues='0'>
    <set value='0' />
    <set value='12.00' />
</dataset>
</chart>

 


数据源还有会是如下数据源:

项目名称  问题类型 金额
道路整改工程 财务管理 0.00
道路整改工程 合同执行 279.70
道路整改工程 建设程序 0.00
道路整改工程 招投标管理 4795.35
河道治理  财务管理 1741.84
河道治理  合同执行 120.30
河道治理  会计基础 5922.56
河道治理  工程量计量 50031.88

所以XML文档要能够根据数据自动进行生成相应的文档

泱泱的主页 泱泱 | 初学一级 | 园豆:2
提问于:2012-07-20 10:50
< >
分享
最佳答案
0

用 class ,然后序列化。

[XmlRoot("chart")]
    public class Chart
    {
        [XmlAttribute("caption")]
        public string Caption { get; set; }

        [XmlAttribute("shownames")]
        public string ShowNames { get; set; }

        [XmlArrayItem("categorie")]
        [XmlArray("categories")]
        public Category[] Categories { get; set; }

        [XmlElement("dataset")]
        public List<DataSet> DataSet { get; set; }
    }

    public class Category
    {
        [XmlAttribute("label")]
        public string Label { get; set; }
    }

    public class DataSet
    {
        public DataSet()
        {
        }

        public DataSet(IEnumerable<Set> sets)
        {
            this.Set = new List<Set>(sets);
        }

        [XmlAttribute("seriesName")]
        public string SeriesName { get; set; }

        [XmlAttribute("color")]
        public string Color { get; set; }

        [XmlElement("set")]
        public List<Set> Set { get; set; }
    }

    public class Set
    {
        [XmlAttribute("value")]
        public decimal Value { get; set; }
    }

测试代码:
Chart chart = new Chart() { Caption = "Country Comparison", ShowNames = "1" };
            chart.Categories = new Category[]
            {
                new Category(){Label ="2011"},
                new Category(){Label = "2012"}
            };

            chart.DataSet = new List<DataSet>(new DataSet[] 
            { 
                new DataSet(new Set[]{new Set{ Value=1111.00M},new Set{Value=51856.14M}}){SeriesName="财务管理",Color="AFD8F8"},
                new DataSet(new Set[]{new Set{ Value=21111.00M},new Set{Value=10837.14M}}){SeriesName="招投标管理",Color="AFD8F8"}             
            });

            XmlSerializer serializer = new XmlSerializer(typeof(Chart));
            using (FileStream fs = File.Create("Chart.xml"))
            {
                serializer.Serialize(fs, chart);
            }
收获园豆:13
Launcher | 高人七级 |园豆:45045 | 2012-07-20 11:06
其他回答(1)
0

直接分析数据写文件最简单!

收获园豆:1
Tom.汤 | 园豆:3028 (老鸟四级) | 2012-07-20 12:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册