您的位置:首页 > 编程语言 > ASP

asp.net xml读取及序列化

2008-06-22 19:18 363 查看
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;

}

}

}

}

}

}

/////////////////////////////////////////
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: