有个这样的ShowList.xml文件,我的代码如下:如何才能吧item的两个值取出来。要2个都出来
我这样取出来反正都只有一个 就是最后那个时间 `10-00 11-45` 谢谢了<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>
````````````````````````````````````````Showlist.xml的一部分public void LoadItems()
        {
            XmlDocument doc = new XmlDocument();
            doc.Load("ShowList.xml");
            XmlNode ShowList = doc.DocumentElement;
            ScheduleItem scheitem = null;
           
            foreach (XmlNode xn in ShowList.ChildNodes)
            {     
                 
                if (xn.Name == "Movie")
                {
                    Movie mov = new Movie();
                    
                    //获得movie下面的子节点
                    foreach (XmlNode xno in xn.ChildNodes)
                    {
                        switch (xno.Name)
                        { 
                            case "Name":
                                mov.MovieName = xno.InnerText;
                                break;
                            case "Poster":
                                mov.Poster = xno.InnerText;
                                break;
                            case "Director":
                                mov.Director = xno.InnerText;
                                break;
                            case "Actor":
                                mov.Actor = xno.InnerText;
                                break;
                            case "Type":                                mov.MovieType = ShowType(xno.InnerText);这一段不要管他··
                                break;
                            case "Price":
                                mov.Price = int.Parse(xno.InnerText);
                                break;
                            case "Schedule":
                                scheitem = new ScheduleItem();
                                scheitem.Movie = mov;
                                foreach (XmlNode node in xno.ChildNodes)
                                {                                    scheitem.Time = node.InnerText;
                                }
                                break;
                        }
                    }
                    Items.Add(mov.MovieName, scheitem);  
                }
            }
        }

解决方案 »

  1.   

    用DateSet读取该XML文件,然后你想取几个字段都可以了
      

  2.   

    用DateSet读取该XML文件,然后你想取几个字段都可以了DataSet ds = new DataSet(); ds.ReadXml("ShowList.xml");
      

  3.   

    那个scheitemItem里面有movie与Time两个属性
    最后的那个Items是scheitem里的一个属性
    private Dictionary<string, ScheduleItem> items;有哪位大哥 大姐 能帮帮小弟我吗?
      

  4.   

    晕 我我用的是TreeView取值的 不是Dataset
      

  5.   


    public void LoadItems() 
            { 
                XmlDocument doc = new XmlDocument(); 
                doc.Load("ShowList.xml"); 
                XmlNode ShowList = doc.DocumentElement;           
                foreach (XmlNode xn in ShowList.ChildNodes) 
                {    
                    
                    if (xn.Name == "Movie") 
                    { 
                        Movie mov = new Movie(); 
                        List<ScheduleItem> scheitemList = new List<ScheduleItem>(); 
                        //获得movie下面的子节点 
                        foreach (XmlNode xno in xn.ChildNodes) 
                        { 
                            switch (xno.Name) 
                            { 
                                case "Name": 
                                    mov.MovieName = xno.InnerText; 
                                    break; 
                                case "Poster": 
                                    mov.Poster = xno.InnerText; 
                                    break; 
                                case "Director": 
                                    mov.Director = xno.InnerText; 
                                    break; 
                                case "Actor": 
                                    mov.Actor = xno.InnerText; 
                                    break; 
                                case "Type":                               mov.MovieType = ShowType(xno.InnerText);这一段不要管他·· 
                                    break; 
                                case "Price": 
                                    mov.Price = int.Parse(xno.InnerText); 
                                    break; 
                                case "Schedule": 
                                    ScheduleItem scheitem = new ScheduleItem(); 
                                    scheitem.Movie = mov; 
                                    foreach (XmlNode node in xno.ChildNodes) 
                                    { 
                                        scheitem.Time = node.InnerText; 
                                        scheitemList.Add(scheitem);
                                    } 
                                    break; 
                            } 
                        } 
                        foreach(ScheduleItem item in scheitemList)
                        {
                           Items.Add(mov.MovieName, item);  
                        }
                    } 
                } 
            }
      

  6.   


                                case "Schedule": 
                                    scheitem = new ScheduleItem(); 
                                    scheitem.Movie = mov; 
                                    int i=0;
                                    foreach (XmlNode node in xno.ChildNodes) 
                                    { 
    //                                   scheitem.Time = node.InnerText; //此处循环肯定只保存最后一次的值,如果可以把time定义数组或集合
                                                                                   //
                                              sheitem.Time[i++]=node.InnerText;
                                    } 
                                    break; 
               
      

  7.   

    这样写当然只有一个值,正解move是一个实体类,里面应该有一个泛型的集合用来保存读出来的时间(无论有多少个时间),而且用来保存时间的 new ScheduleItem()写到foreach里面每循环一次就new一个,然后再添加到move.泛型.add(new ScheduleItem()),这样大概应该这样写
    foreach (XmlNode node in xno.ChildNodes) 

        ScheduleItem sdi = new ScheduleItem()
        //比方里面有一个属性是time,用来保存时间
        sdi.time = node.innertext    //最后把sdi这个实例添加到move的泛型里
        move.泛型.add(sdi);

      

  8.   


    namespace WindowsApplication24
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                XmlDocument xd = new XmlDocument();
                xd.Load(@"c:\a.xml");
                foreach (XmlElement xe in xd.SelectNodes("//Movie/Schedule/Item"))
                    treeView1.Nodes.Add(xe.InnerText);
            }
        }
    }
      

  9.   


     XmlDocument doc = new XmlDocument(); 
    doc.Load("ShowList.xml"); 
    XmlElement root = doc.DocumentElement; 
    XmlNodeList elemList = root.GetElementsByTagName("ITEM"); 
      

  10.   

     XmlDocument doc = new XmlDocument(); 
    doc.Load("ShowList.xml"); 
    XmlElement root = doc.DocumentElement; 
    XmlNodeList elemList = root.GetElementsByTagName("ITEM"); 
      

  11.   

    实体类:public class Movie
        {
            public List<string> Timds = new List<string>();        string actor;        public string Actor
            {
                get { return actor; }
                set { actor = value; }
            }
            string director;        public string Director
            {
                get { return director; }
                set { director = value; }
            }
            string movieName;        public string MovieName
            {
                get { return movieName; }
                set { movieName = value; }
            }
            MovieType movieType;        public MovieType MovieType
            {
                get { return movieType; }
                set { movieType = value; }
            }
            string poster;        public string Poster
            {
                get { return poster; }
                set { poster = value; }
            }
            int price;        public int Price
            {
                get { return price; }
                set { price = value; }
            }
        }xml解析XmlDocument xml = new XmlDocument();
                xml.Load("ShowList.xml");
                XmlNodeList showlist = xml.DocumentElement.ChildNodes;
                foreach (XmlNode mynode in showlist)
                {
                    Movie movie = new Movie();
                    foreach (XmlNode mymovie in mynode.ChildNodes)
                    {
                        switch (mymovie.Name)
                        {
                            case "Name": movie.MovieName = mymovie.InnerText; break;
                            case "Poster": movie.Poster = mymovie.InnerText; break;
                            case "Director": movie.Director = mymovie.InnerText; break;
                            case "Actor": movie.Actor = mymovie.InnerText; break;
                            case "Type":
                                Object obj = Enum.Parse(typeof(MovieType), mymovie.InnerText,false);
                                MovieType movietype = (MovieType)obj;
                                movie.MovieType = movietype; break;
                            case "Price": movie.Price = int.Parse(mymovie.InnerText); break;
                            case "Schedule":
                                foreach (XmlNode schedulenode in mymovie.ChildNodes)
                                {
                                    movie.Timds.Add(schedulenode.InnerText);
                                }; break;
                        }
                    }
                    movies.Add(movie);
                }
      

  12.   

    hi,我推荐你使用linq to xml.
      

  13.   


    xmlNodeList nl = doc.SelectNodes("\\items");
    foreach (xmlNode node in nl)
      MessageBox.Show(node.Text);
      

  14.   

     //创建XML文档
                XmlDocument xml = new XmlDocument();
                //读取XML文档
                xml.Load("XMLDocument.xml");            XmlNode list = xml.DocumentElement;       //获得根节点
                foreach (XmlNode nodes in list.ChildNodes)
                {
                    string name = null;
                    string poster = null;
                    string director = null;
                    string actor = null;
                    string type = null;
                    string price = null;                foreach (XmlNode subNodes in nodes.ChildNodes)
                    {
                        switch (subNodes.Name)
                        {
                            case "Name":
                                name = subNodes.InnerText;
                                break;
                            case "Poster":
                                poster = subNodes.InnerText;
                                break;
                            case "Director":
                                director = subNodes.InnerText;
                                break;
                            case "Actor":
                                actor = subNodes.InnerText;
                                break;
                            case "Type":
                                type = subNodes.InnerText;
                                break;
                            case "Price":
                                price = subNodes.InnerText;
                                break;
                            case "Schedule":
                                foreach (XmlNode subsubNodes in subNodes.ChildNodes)
                                {
                                    ScheduleItem scheduleItems = new ScheduleItem();
                                    scheduleItems.Time = subsubNodes.InnerText;
                                    scheduleItems.Movie.MovieName = name;
                                    scheduleItems.Movie.Poster = poster;
                                    scheduleItems.Movie.Director = director;
                                    scheduleItems.Movie.Actor = actor;
                                    scheduleItems.Movie.MovieType = (MovieType)
                                        (Enum.Parse(typeof(MovieType),type));
                                    scheduleItems.Movie.Price = int.Parse(price);
                           
                                    Items.Add( scheduleItems.Time,scheduleItems);      
                                }
                                break;
                        }                }
                }
      

  15.   

    string movieName = null;
                TreeNode nameNode = null;
                foreach (ScheduleItem items in cinema.Schedule.Items.Values)
                {
                    if (!(movieName == items.Movie.MovieName))
                    {
                        nameNode = new TreeNode(items.Movie.MovieName);
                        tvMain.Nodes.Add(nameNode);
                    }
                    TreeNode timeNode = new TreeNode(items.Time);
                    nameNode.Nodes.Add(timeNode);
                    movieName = items.Movie.MovieName;
                }
      

  16.   

    有个XmlNodeList类,你可以获得Schedule节点下的XmlNodeList,之后根据XmlNodeList的数量做for循环就可以取出来了。
      

  17.   

    C#创建XML文件 
    http://www.ithaiyang.com.cn/html/DOTNET/CSharp/5772.html C#添加XML元素 
    http://www.ithaiyang.com.cn/html/DOTNET/CSharp/5773.html C#删除XML元素 
    http://www.ithaiyang.com.cn/html/DOTNET/CSharp/5774.html C#修改XML元素 
    http://www.ithaiyang.com.cn/html/DOTNET/CSharp/5775.html 希望对你有帮助