你的位置:首页 > ASP.net教程

[ASP.net教程]小学生之解析XML应用


1.什么是XML?

解析:可扩展标记语言)

        HTML:HyperLink Text  Markup Language(超文本标记语言)

 2. 文件和html文件的区别?

  解析:01.严格区分大小写,html不区分

          02.不是编译语言,和html都是解释型语言

          03.html语言负责显示数据,而文件就是专门用来存储数据

注:如果我们在书写文件的时候,如果自己用的encoding="utf-8"出现问题,那么试着切成gb2312

3.书写注意点

  1.文件严格区分大小写
  2.标签配对出现
  3.文档只能有一个根节点
  4.我们自定义文档中的标签

4.解析文件

  解析:01.做一个文档

          02.copy到debug目录下

          03.创建一个对象 Ctrl+.导入命名空间

         04.调用doc.Load(“路径”)

         05.拿到根节点  

         06.用foreach来获取子节点内容

5.问题记录

 01.Load(string filename):绝对路径:"D:\123\Singer.

 02.item.Name指定的是<内容>  ,item.InnerText指的是<>内容</>

6.练习

 

需求说明 单击电视台频道节点,DataGridView显示频道对应节目单

 

 

主要代码如下:

 1 //电视节目类 2  public class TvProgram 3   { 4    //播出时间 5     public DateTime PlayTime { get; set; } 6  7    //时段 8     public string Median { get; set; } 9    //节目名称10     public string ProgramName { get; set; }11    //节目文件路劲12     public string FilePath { get; set; }13   }

1   //频道类2  public abstract class ChannelBase3   {4    public string channelName;//频道名称5    public string path;//频道路劲6    public List<TvProgram> programList;//节目列表7    //解析频道节目信息8    public abstract void Fetch();9   }

 1 //TypeA类频道类 2   public class TypeAChannel:ChannelBase 3   { 4     public TypeAChannel() { } 5  6      7     public override void Fetch() 8     { 9       new 10       doc.Load(path);11       if (programList==null)12       {13         programList=new List<TvProgram>();14       }15        doc.DocumentElement;16       foreach (in root.ChildNodes)17       {18         if (item.Name=="tvProgramTable")19         {20           foreach (in item.ChildNodes)21           {22             TvProgram program = new TvProgram();23             program.PlayTime = Convert.ToDateTime(child["playTime"].InnerText);24             program.Median = child["meridien"].InnerText;25             program.ProgramName = child["programName"].InnerText;26             program.FilePath = child["path"].InnerText;27             this.programList.Add(program);28           }29         }30       }31     }32   }

 1  //频道B类 2  public class TypeBChannel:ChannelBase 3   { 4  5     public override void Fetch() 6     { 7       new  8       doc.Load(path); 9       if (programList == null)10       {11         programList = new List<TvProgram>();12       }13        doc.DocumentElement;
          //解析14 foreach (in root.ChildNodes)15 {16 if (item.Name == "ProgramList")17 {18 foreach (in item.ChildNodes)19 {20 TvProgram program = new TvProgram();21 program.PlayTime = Convert.ToDateTime(child["playTime"].InnerText);22 program.FilePath = child["path"].InnerText;23 program.ProgramName = child["name"].InnerText;24 this.programList.Add(program);25 }26 }27 }28 }29 }

 1   //工厂操作类 2  public class ChannelManager 3   { 4    public Dictionary<string, ChannelBase> dic = new Dictionary<string, ChannelBase>();//存储频道名称和该频道中的节目信息 5    public void LoadtvChannel() 6     { 7      new  8      doc.Load("files/FullChannels."); 9       doc.DocumentElement;10      foreach (in node.ChildNodes)11       {12        ChannelBase channel = CreateChannel(item["channelType"].InnerText);//创建频道A或者B对象13        channel.channelName = item["tvChannel"].InnerText;//获取14        channel.path = item["path"].InnerText;//获取15         dic.Add(channel.channelName,channel);16       }17     }18   //创建类的实例19     public ChannelBase CreateChannel(string type)20     {21       ChannelBase channel = null;22       switch (type)23       {24         case"TypeA":25           channel = new TypeAChannel();26           break;27         case"TypeB":28           channel = new TypeBChannel();29           break;30         default:31           break;32       }33       return channel;34     }35   }

 1 //创建ChannelManagement类对象 2     ChannelManager manager = new ChannelManager(); 3   //加载TreeView中的数据 4     private void LoadTreeView()  5     { 6       TreeNode nodeFristLevel = new TreeNode("我的电视台"); 7       this.tvChannel.Nodes.Add(nodeFristLevel); 8       TreeNode allnode = new TreeNode("所有电视台"); 9       TreeNode node = null;10       manager.LoadtvChannel();11     //循环给“所有电视台”添加子节点12       foreach (ChannelBase item in manager.dic.Values)13       {14         node = new TreeNode(item.channelName);15         node.Tag = item;//保存ChannelBse对象16         allnode.Nodes.Add(node);  17       }18       this.tvChannel.Nodes.Add(allnode);19     }20     private void Form1_Load(object sender, EventArgs e)21     {22     //皮肤设置23       skinEngine1.SkinFile = "MSN.ssk";24     //调用方法25       LoadTreeView();26       27     }28   //TreeView点击后事件29     private void tvChannel_AfterSelect(object sender, TreeViewEventArgs e)30     {31       if (this.tvChannel.SelectedNode.Level==1)//判断深度为132       {33         ChannelBase channel = (ChannelBase)tvChannel.SelectedNode.Tag;34         if (channel.programList != null)//清空List<T>集合中的数据35         {36           channel.programList.Clear();37         }38         channel.Fetch();39         this.dgvProgList.DataSource = channel.programList;//绑定数据源40       }41       42     }

 

 




山东旅游团购优惠山东旅游线路报价山东旅游指南攻略大全山东旅游住哪里比较方便山东旅游住宿攻略深圳地王大厦附近有地铁站吗?地王大厦观光乘几号地铁? 2015清明节深圳哪里有活动?深圳清明节去哪好玩? 盘点重庆15处放风筝胜地 让好心情与风筝齐飞 2015清明节深圳地王观光门票多少钱?地王大厦观光清明节票价? 2015春节从化有花展吗?广州从化宝趣玫瑰世界花展是什么时候? 2015春节广州哪里有花展?广州春节花展在什么地方举办? 2015春节宝趣玫瑰园花展时间?从化宝趣玫瑰世界春节花展有什么花? 2015春节宝趣玫瑰园花展时间?从化宝趣玫瑰世界春节花展怎么样? 畅游江苏 寻觅秋色里的古韵美景 万圣节来袭 开启“鬼”混之旅 人文泸西 不一样的城子古村 798艺术区怎么去? 国庆去哪里玩?香港购物有什么要注意的? 澳门环岛游现在的票价是多少钱?可以玩多久? 在香港购物可以直接刷普通的借记卡吗? 去香港买什么便宜? AQ12EA6R8JAJWE Datasheet AQ12EA6R8JAJWE Datasheet SQCAEA150FAJME Datasheet SQCAEA150FAJME Datasheet 08055U131FAT9A Datasheet 08055U131FAT9A Datasheet 宁波去香港旅游 宁波去香港旅游 宁波去香港旅游 齐齐哈尔去香港游 齐齐哈尔去香港游 齐齐哈尔去香港游 大兴安岭出发去香港旅游 大兴安岭出发去香港旅游 大兴安岭出发去香港旅游