我有一个XML配置文件
<AddExConfig>
  <FileExp>
    <FileExpValue Name="文本文件" Code=".TXT"/>
    <FileExpValue Name="SHP" Code=".SHP"/>
    <FileExpValue Name="TIF" Code=".TIF"/>
    <FileExpValue Name="JPG" Code=".JPG"/>
    <FileExpValue Name="TXT" Code=".TXT"/>
  </FileExp>
</AddExConfig>
想用datatable读取他  然后绑定到下拉框
当我打开一个文件后读取他的扩展名  比如.txt的文件,下拉框内容通过配置文件的初始化成中文名 文本文件谢谢大家帮助   分不够可以加

解决方案 »

  1.   

    使用XMLDOCUMENT 读出来写到DATATABLE里把
      

  2.   

    using System.Xml;XmlDocument doc = new XmlDocument();
    doc.Load(@"c:\a.txt"); //这个就是你的文本文件的路径。XmlNodeList Nodes = doc.SelectNodes("AddExConfig/FileExp/FileExpValue");foreach (XmlNode node in Nodes)
    {
        comboBox1.Items.Add(node.Attributes[1].Value.ToString());
    }
      

  3.   

    这个方法我知道的,如果我想用datatable  怎么弄
    还有我有一个功能,用OpenFileDialog打开一个文件,就读取文件名称,路径,扩展名等一些信息
    现在想用读取配置文件的方法  初始化其中的一个下拉框
    当我读取一个文件,得到它的扩展名如.txt,自动给他装换成扩展名的中文名称如文本文件。
    请问怎么弄?谢谢
      

  4.   

    XmlDocument _Doc = new XmlDocument();            _Doc.Load(@"D:\temp\file2.xml");            XmlNodeList _NodeList = _Doc.SelectNodes("//AddExConfig/FileExp/FileExpValue");
                DataTable _Table = new DataTable();
                _Table.Columns.Add("Name");
                _Table.Columns.Add("Code");            foreach (XmlNode _Node in _NodeList)
                {
                    _Table.Rows.Add(new object[] { _Node.Attributes["Name"].Value, _Node.Attributes["Code"].Value });
                }            comboBox1.DataSource = _Table;
                comboBox1.DisplayMember = "Name";这样看看
      

  5.   

    public DataSet CXmlFileToDataSet(string xmlFilePath)
    {
                if (!string.IsNullOrEmpty(xmlFilePath))
                {
                    string path = xmlFilePath;                StringReader StrStream = null;                XmlTextReader Xmlrdr = null;                try
                    {
                        XmlDocument xmldoc = new XmlDocument(); //根据地址加载Xml文件                    xmldoc.Load(path);                    DataSet ds = new DataSet(); //读取文件中的字符流                    StrStream = new StringReader(xmldoc.InnerXml); //获取StrStream中的数据                    Xmlrdr = new XmlTextReader(StrStream); //ds获取Xmlrdr中的数据                    ds.ReadXml(Xmlrdr);                    return ds;
                    }
                    catch (Exception e)
                    {
                        throw e;
                    }
                    finally
                    {
                        //释放资源
                        if (Xmlrdr != null)
                        {
                            Xmlrdr.Close();                        StrStream.Close();                        StrStream.Dispose();
                        }
                    }
                }
                else
                {
                    return null;
                }
            }使用方法:
    DataSet ds = DataSet CXmlFileToDataSet(xmlFilePath)
    DataTable  tb =  ds.Tables[0];
    OK了吧!
      

  6.   

    如果用datatable.readxml()方法可以吗,怎么用?
      

  7.   

    介意使用XMLDOCUMENT 
    XMLDOCUMENT  x = new XMLDOCUMENT ();
    x.LoadXml(path)然后进行其他的操作:
      

  8.   



    你这个是从datatable到xml是吧?

    相反的方法是: /// 将DataTable对象转换成XML字符串
            /// </summary>
            /// <param name="dt">DataTable对象</param>
            /// <returns>XML字符串</returns>
            public static string CDataToXml(DataTable dt)
            {
                if (dt != null)
                {
                    MemoryStream ms = null;                XmlTextWriter XmlWt = null;
                    try
                    {
                        ms = new MemoryStream();//根据ms实例化XmlWt                    XmlWt = new XmlTextWriter(ms, Encoding.Unicode);                    //获取ds中的数据
                        dt.WriteXml(XmlWt);                    int count = (int)ms.Length;                    byte[] temp = new byte[count];                    ms.Seek(0, SeekOrigin.Begin);                    ms.Read(temp, 0, count); //返回Unicode编码的文本                    UnicodeEncoding ucode = new UnicodeEncoding();                    string returnValue = ucode.GetString(temp).Trim();                    return returnValue;
                    }
                    catch (System.Exception ex)
                    {
                        throw ex;
                    }
                    finally //释放资源
                    { 
                        if (XmlWt != null)
                        {
                            XmlWt.Close();                        ms.Close();                        ms.Dispose();
                        }
                    }
                }
                else
                {
                    return "";
                }
            }
      

  9.   

    其实也可以用dataset.readxml  只不过你要操作datatable而已