现在有些XML文件,想把XML文件解析一下,把节点对应的值,放到一张datatable里面(像数据库中的表一样),返回这张表(作为数据源),在页面上用gridview显示出来,xml文件如下
  <?xml version="1.0" encoding="utf-8" ?> 
- <response>
- <MODEL>
  <modelid>5640</modelid> 
  <name>050601.esx</name> 
  <description>test</description> 
  <createdon>2009-05-11 14:31:24+0800</createdon> 
  <modifiedon>2009-05-11 14:33:28+0800</modifiedon> 
  <type>esx</type> 
  <size>207689</size> 
  <version>2</version> 
  </MODEL>
  
  <MODEL>
  <modelid>5640</modelid> 
  <name>050601.esx</name> 
  <description>test</description> 
  <createdon>2009-05-11 14:31:24+0800</createdon> 
  <modifiedon>2009-05-11 14:33:28+0800</modifiedon> 
  <type>esx</type> 
  <size>207689</size> 
  <version>2</version> 
  </MODEL>
  </response>
最后显示的效果
 modelid     name·····version
 5640       050601.esx  2
 5640       050601.esx   2

解决方案 »

  1.   

    using System.Xml;  public KSBMCONFIG ReadConfig(string XmlConfigFile)
      {
       KSBMCONFIG _conf = new KSBMCONFIG ();
       try
       {
        // Open an XML file
        System.Xml.XmlTextReader reader;
        reader = new System.Xml.XmlTextReader(XmlConfigFile);
        while ( reader.Read() )
        {
         if((reader.NodeType == XmlNodeType.EndElement) 
          &&(reader.Name == "KSBM"))
         {
          break;
         }
         if(reader.IsStartElement ("ServerPath"))
         {
          reader.Read ();
          _conf.ServerPath = reader.Value ;
         }
         else if(reader.IsStartElement ("SmtpServer"))
         {
          reader.Read ();
          _conf.SMTPServer = reader.Value ;
         }
         else if(reader.IsStartElement ("ConnectString"))
         {
          reader.Read ();
          _conf.ConnectString = reader.Value ;
         }
        }
        return _conf;
       }
       catch
       {
        _conf.ConnectString = "";
        _conf.ServerPath = "";
        _conf.SMTPServer = "";
        return _conf;
       }
       finally
       {
       }
      }
      

  2.   


                string xml = @"<?xml version=""1.0"" encoding=""utf-8"" ?>
     <response>
     <MODEL>
      <modelid>5640 </modelid>
      <name>050601.esx </name>
      <description>test </description>
      <createdon>2009-05-11 14:31:24+0800 </createdon>
      <modifiedon>2009-05-11 14:33:28+0800 </modifiedon>
      <type>esx </type>
      <size>207689 </size>
      <version>2 </version>
      </MODEL>
     
      <MODEL>
      <modelid>5640 </modelid>
      <name>050601.esx </name>
      <description>test </description>
      <createdon>2009-05-11 14:31:24+0800 </createdon>
      <modifiedon>2009-05-11 14:33:28+0800 </modifiedon>
      <type>esx </type>
      <size>207689 </size>
      <version>2 </version>
      </MODEL>
     </response> ";
                DataTable dt = new DataTable();
                dt.Columns.AddRange(new DataColumn[] { new DataColumn("modelid"), new DataColumn("name"), new DataColumn("description"), new DataColumn("createdon"), new DataColumn("modifiedon"), new DataColumn("type"), new DataColumn("size"), new DataColumn("version") });
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(xml);
                foreach (XmlNode node in doc.GetElementsByTagName("MODEL"))
                {
                    DataRow dr = dt.NewRow();
                    for (int i = 0; i < node.ChildNodes.Count; i++)
                    {
                        dr[i] = node.ChildNodes[i].InnerText;
                    }
                    dt.Rows.Add(dr);
                }
      

  3.   


    这个string xml报错么?不是string类型么
      

  4.   

    我这里只是举个例子而已,实际你当然应该读取XML文件
    XmlDocument doc = new XmlDocument();
    doc.Load("xml文件路径");
    看来你真的是对XML很不熟悉