zoukankan      html  css  js  c++  java
  • 如何利用XML文件,做为配置参数?

        以前我在处理程序的配置文件时,基本上都是读取文本文件。这样做的结果是文本文件的格式和内容不好确定,因为文本文件格式比较随意,结果配置的更改非常的麻烦。
        现在是XML盛行的时代,我想好多人早已用XML文档做为配置数据的载体了,而我是刚刚才掌握而已。现在写一点示例代码,希望对新朋友有所帮助。
        这样操作的原理是使用FileStream和Dataset。将XML文件中读取到的字符串做为参数传递给Dataset,而形成一个Dataset数据集,我们再从数据集中读取数据。这对于习惯于操作数据库的朋友来说可能更为方便一些。但相信有很多朋友会选择直接读取XML文件中的XmlNodes,希望这些朋友看到时能给我回复一个更好的代码。谢谢。
    以下就是全部的代码:
     1        private void btnReadXML_Click(object sender, EventArgs e)
     2        {
     3            DataSet myDS = new DataSet();
     4            string xmlData;
     5            StringBuilder sb = new StringBuilder();
     6
     7            string fileName;
     8            fileName = @"C:\Documents and Settings\guof\Desktop\Configure.xml";
     9
    10            try
    11            {
    12                FileStream fs = new FileStream(fileName, FileMode.Open);
    13                StreamReader sr = new StreamReader(fs);
    14
    15                string strLine = "";
    16                strLine = sr.ReadLine();
    17                sb.Append(strLine);
    18                while (!sr.EndOfStream)
    19                {
    20                    strLine = sr.ReadLine();
    21                    sb.Append(strLine);
    22                }

    23
    24                sr.Close();
    25                fs.Close();
    26
    27                xmlData = sb.ToString();
    28
    29                StringReader xmlSR = new StringReader(xmlData);
    30
    31                myDS.ReadXml(xmlSR, XmlReadMode.InferSchema);
    32                xmlSR.Close();
    33                dgvXmlDS.DataSource = myDS.Tables[0];
    34            }

    35            catch (Exception ex)
    36            {
    37                MessageBox.Show(ex.Message);
    38            }

    39        }

    以下是相关的XML文件内容:
    1<TSDS>
    2  <ConfigureStrings>
    3    <Server>sapf</Server>
    4    <DBUser>sa</DBUser>
    5    <DBPassword>sa</DBPassword>
    6  </ConfigureStrings>
    7</TSDS>
        由于仅是测试的代码,因此没有完整地遵循Try Catch结构,实际应用时还需要调整。
        这段代码并不是高效地代码,希望朋友们帮我指正和回复更好的代码。
  • 相关阅读:
    Codeforces E-Anton and Tree
    树的重心和直径-POJ1655
    Cisco packet tracer 实现两台计算机互ping
    codeforce 679A Bear and Prime 100 (交互题)
    codejam 2019 round 1C Robot Programming Strategy (构造)
    luogu P1086 花生采摘 (优先队列+模拟)
    ZOJ 4110 Strings in the Pocket (马拉车+回文串)
    HDOJ 6508 Problem I. Spell Boost (01背包/DP)
    L2-011 玩转二叉树 (25 分) (树)
    L2-004 这是二叉搜索树吗? (25 分) (树)
  • 原文地址:https://www.cnblogs.com/saptechnique/p/995136.html
Copyright © 2011-2022 走看看