asp.net xml读取及序列化

using System;

using System.Collections.Generic;

using System.Text;



namespace MyCinema

{

    /// <summary>

    /// 电影类

    /// </summary>

    [Serializable]

    public class Movie

    {

        public Movie()

        { 

            

        }

        public Movie(string _movieName,string _poster, string _director,string _actor, MovieType _myMovieType, int _price)

        {

            this.movieName = _movieName;

            this.poster = _poster;

            this.director = _director;

            this.actor = _actor;

            this.myMovieType = _myMovieType;

            this.price = _price; 

        }

            



        //定义电影类型的枚举

        public enum MovieType

        {

            Comedy,

            War,

            Romance,

            Action,

            Cartoon,

            Thriller

        }



        //电影名

        private string movieName;

        //海报图片属性

        private string poster;

        //导演名

        private string director;

        //主演

        private string actor;

        //电影类型

        private MovieType myMovieType;

        //定价

        private int price;



        public string MovieName

        {

            get { return movieName; }

            set { movieName = value; }

        }



        public string Poster

        {

            get { return poster; }

            set { poster = value; }

        }



        public string Director

        {

            get { return director; }

            set { director = value; }

        }



        public string Actor

        {

            get { return actor; }

            set { actor = value; }

        }



        public MovieType MyMovieType

        {

            get { return myMovieType; }

            set { myMovieType = value; }

        }





        public int Price

        {

            get { return price; }

            set { price = value; }

        }

    }

}

///

<?xml version="1.0" encoding="utf-8" ?>

<ShowList>

	<Movie>

		<Name>功夫</Name>

		<Poster>gongfu.jpg</Poster>

		<Director>周星驰</Director>

		<Actor>周星驰</Actor>

		<Type>Action</Type>

		<Price>60</Price>

		<Schedule>

			<Item>8-00 9-45</Item>

			<Item>10-00 11-45</Item>

		</Schedule>

	</Movie>

	<Movie>

		<Name>疯狂的石头</Name>

		<Poster>bone.jpg</Poster>

		<Director>宁浩</Director>

		<Actor>郭涛</Actor>

		<Type>Comedy</Type>

		<Price>60</Price>

		<Schedule>

			<Item>12-00 13-45</Item>

			<Item>14-00 15-45</Item>

		</Schedule>

	</Movie>

	<Movie>

		<Name>蜘蛛人3</Name>

		<Poster>spiderman3.jpg</Poster>

		<Director>萨姆·莱米</Director>

		<Actor>托贝·马奎尔</Actor>

		<Type>Action</Type>

		<Price>60</Price>

		<Schedule>

			<Item>16-00 17-45</Item>

			<Item>18-00 19-45</Item>

		</Schedule>

	</Movie>

</ShowList>

/

using System;

using System.Collections.Generic;

using System.Text;

using System.Xml;



namespace MyCinema

{

    /// <summary>

    /// 放映计划类

    /// </summary>

    [Serializable]

    public class Schedule

    {

        public Schedule()

        {

            

        }



        //放映场次集合

        private Dictionary<string, ScheduleItem> items;



        public Dictionary<string, ScheduleItem> Items

        {

            get { return items; }

            set { items = value; }

        }

        //读取xml文件的方法

        public void LoadItems()

        {

            XmlDocument myXml = new XmlDocument();

            myXml.Load("..//..//Movie.xml");

            XmlNode node = myXml.DocumentElement;

            items = new Dictionary<string, ScheduleItem>();



            foreach (XmlNode  node1 in node.ChildNodes )

            {

                

                 //创建电影对象和场次集合对象

                Movie movie = new Movie();



                foreach (XmlNode  node2 in node1 .ChildNodes )

                {

                    switch (node2 .Name)

                    {

                        case "Name":

                            movie.MovieName = node2.InnerText;

                            break;

                        case "Poster":

                            movie.Poster = node2.InnerText;

                            break;

                        case "Director":

                            movie.Director = node2.InnerText;

                            break;

                        case "Actor":

                            movie.Actor = node2.InnerText;

                            break;

                        case "Type":

                            switch (node2.InnerText)

                            {

                                case "Comedy":

                                    movie.MyMovieType = Movie.MovieType .Comedy;

                                    break;

                                case "War":

                                    movie.MyMovieType = Movie.MovieType.War;

                                    break;

                                case "Romance":

                                    movie.MyMovieType = Movie.MovieType.Romance;

                                    break;

                                case "Action":

                                    movie.MyMovieType = Movie.MovieType.Action;

                                    break;

                                case "Cartoon":

                                    movie.MyMovieType = Movie.MovieType.Cartoon;

                                    break;

                                case "Thriller":

                                    movie.MyMovieType = Movie.MovieType.Thriller;

                                    break;

                            }

                            break;

                        case "Price":

                            movie.Price = Convert.ToInt32(node2.InnerText);

                            break;

                        case "Schedule":

                            foreach (XmlNode var in node2)

                            {

                                string time = var.InnerText;

                                ScheduleItem scheduleItem = new ScheduleItem();

                                scheduleItem.time = time;

                                scheduleItem.movie = movie;

                                items.Add((movie.MovieName + time), scheduleItem);

                            }

                            break;

                    }

                }

            }

        }

    }

}

/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值