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;

                    }

                }

            }

        }

    }

}

/////////////////////////////////////////
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章