笨也要活着

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

       System.Xml命名空间包含了一些最重要的XML类,其中最主要的类是和XML文档的读写操作相关的类。这些类中包括4个与读相关的类以及2个与写相关的类。它们分别是:XmlReader、XmlTextReader、XmlValidatingReader、XmlNodeReader、XmlWriter以及 XmlTextWriter。

      XmlReader类是一个虚基类,它包含了读XML文档的方法和属性。该类中的Read方法是一个基本的读XML文档的方法,它以流形式读取XML文档中的节点(Node)。另外,该类还提供了ReadString、ReadInnerXml、ReadOuterXml和ReadStartElement等更高级的读方法。除了提供读XML文档的方法外,XmlReader类还为程序员提供了MoveToAttribute、MoveToFirstAttribute、MoveToContent、MoveToFirstContent、MoveToElement以及 MoveToNextAttribute等具有导航功能的方法。

  XmlTextReader、XmlNodeReader以及XmlValidatingReader等类是从XmlReader类继承过来的子类。根据它们的名称,我们可以知道其作用分别是读取文本内容、读取节点和读取XML模式(Schemas)。

使用XmlTextReader

   XmlTextReader reader=null;
              
   try
   {
    string Fpath=Server.MapPath("menu.xml");
  
       reader=new XmlTextReader(Fpath);

    while(reader.Read())
    {
     if(reader.NodeType==XmlNodeType.Element)
     {
      if(reader.LocalName=="item")
      { 
       while(reader.Read())
       {
        if(reader.NodeType==XmlNodeType.Element)
        {
          switch(reader.Name)
          {
           case "message":
            Response.Write(reader.ReadElementString());
            Response.Write(":");
            continue;
           case "submenu":
            Response.Write(reader.ReadElementString());
            Response.Write(":");
            continue;
           case "u":
            Response.Write(reader.ReadElementString());
            Response.Write("<br>");
            break;          
          }      
               } 
       }      
      } 
     }    
    }   
   }
   finally{
    if(reader!=null)
    reader.Close();
    }


使用XmlNodeReader

            XmlNodeReader reader=null;

   try
{
    string Fpath=Server.MapPath("menu.xml");
    XmlDocument doc=new XmlDocument();
   
    doc.Load(Fpath);
   
   
    reader=new XmlNodeReader(doc);
   if (reader.HasAttributes)
   {
    for (int i = 0; i < reader.AttributeCount; i++)
    {
     reader.MoveToAttribute(i);
     //Response.Write(reader.Name);
     if(reader.Name=="value")
     {
      Response.Write(":");
      Response.Write(reader.Value);
     }
     Response.Write("<br>");
    }
   }
}

   finally{
    if(reader!=null)
    reader.Close();
    }

 

posted on 2006-02-21 11:15  ldz  阅读(740)  评论(0编辑  收藏  举报