<?xml version="1.0"?>
<!--Created BaseConfig XML2011-5-23 20:47:41-->
<WebConfig>
    <Config>
        <Title>系统设置</Title>
        <Parameter>
            <TitlesCN>aaaa</TitlesCN>
            <KeywordsCN>bbb</KeywordsCN>
              //....后面还有很多这样结构的数据
              //.....
        </Parameter>    </Config>
</WebConfig>这是一个网站基本配置的XML文件,我想把它读取到SqlDataReader或DataTabel并缓存起来,获取时只要用sdr["TitlesCN"]或dt["TitlesCN"]来使用,这样比较方便点。
不知要怎么实现。谢谢,请教大家了。

解决方案 »

  1.   

    <Parameter> 又套了一层,所以这格式无法直接读取。但你可以设计一个class,直接反序列化成对象
      

  2.   

    private   void   DemonstrateReadWriteXMLDocumentWithXMLReader(){ 
          //   Create   a   DataSet   with   one   table   and   two   columns. 
          DataSet   OriginalDataSet   =   new   DataSet( "myDataSet "); 
            OriginalDataSet.Namespace=   "NetFrameWork "; 
          DataTable   myTable   =   new   DataTable( "myTable "); 
          DataColumn   c1   =   new   DataColumn( "id ",   Type.GetType( "System.Int32 ")); 
          c1.AutoIncrement=   true; 
          DataColumn   c2   =   new   DataColumn( "item "); 
          myTable.Columns.Add(c1); 
          myTable.Columns.Add(c2); 
          OriginalDataSet.Tables.Add(myTable); 
          //   Add   ten   rows. 
          DataRow   newRow; 
          for(int   i   =   0;   i   <   10;   i++){ 
                newRow   =   myTable.NewRow(); 
                newRow[ "item "]=   "item   "   +   i; 
                myTable.Rows.Add(newRow); 
          } 
          OriginalDataSet.AcceptChanges(); 
          //   Print   out   values   of   each   table   in   the   DataSet   using   the   
          //   function   defined   below. 
          PrintValues(OriginalDataSet,   "Original   DataSet "); 
          //   Write   the   XML   schema   and   data   to   file   with   FileStream. 
          string   xmlFilename   =   "myXmlDocument.xml "; 
          //   Create   FileStream         
          System.IO.FileStream   fsWriteXml   =   new   System.IO.FileStream 
                (xmlFilename,   System.IO.FileMode.Create); 
          //   Create   an   XmlTextWriter   to   write   the   file. 
          System.Xml.XmlTextWriter   xmlWriter   =   new   System.Xml.XmlTextWriter 
                (fsWriteXml,   System.Text.Encoding.Unicode); 
          //   Use   WriteXml   to   write   the   document. 
          OriginalDataSet.WriteXml(xmlWriter); 
          //   Close   the   FileStream. 
          fsWriteXml.Close(); 
                
          //   Dispose   of   the   original   DataSet. 
          OriginalDataSet.Dispose(); 
          //   Create   a   new   DataSet. 
          DataSet   newDataSet   =   new   DataSet( "New   DataSet "); 
                
          //   Read   the   XML   document   back   in.   
          //   Create   new   FileStream   to   read   schema   with. 
          System.IO.FileStream   fsReadXml   =   new   System.IO.FileStream 
                (xmlFilename,   System.IO.FileMode.Open); 
          //   Create   an   XmlTextReader   to   read   the   file. 
          System.Xml.XmlTextReader   myXmlReader   =   
                new   System.Xml.XmlTextReader(fsReadXml); 
          //   Read   the   XML   document   into   the   DataSet. 
          newDataSet.ReadXml(myXmlReader); 
          //   Close   the   XmlTextReader 
          myXmlReader.Close();       //   Print   out   values   of   each   table   in   the   DataSet   using   the   
          //   function   defined   below. 
          PrintValues(newDataSet, "New   DataSet "); 
    } private   void   PrintValues(DataSet   ds,   string   label){ 
          Console.WriteLine( "\n "   +   label); 
          foreach(DataTable   t   in   ds.Tables){ 
                Console.WriteLine( "TableName:   "   +   t.TableName); 
                foreach(DataRow   r   in   t.Rows){ 
                      foreach(DataColumn   c   in   t.Columns){ 
                            Console.Write( "\t   "   +   r[c]   ); 
                      } 
                      Console.WriteLine(); 
                } 
          } 
    }