1. 程式人生 > 其它 >XML學習筆記--未完待續

XML學習筆記--未完待續

XML文件建立流程圖

建立XML文件程式碼

        /// <summary>
        /// 建立XML文件
        /// </summary>
        public void CreateXmlDocument(ListBox listBox)
        {
            listBox.Items.Clear();
            Random random = new Random();
            XmlDocument doc = new XmlDocument();
            XmlDeclaration declaration = doc.CreateXmlDeclaration("1.0", "UTF-8", "yes");
            doc.AppendChild(declaration);
            XmlElement root = doc.CreateElement("students");
            doc.AppendChild(root);
            for (int i = 0; i < 10; i++)
            {
                listBox.Items.Add($"新增:劉小強-{i}");
                XmlElement element1 = doc.CreateElement("student");
                root.AppendChild(element1);
                element1.SetAttribute("姓名", $"劉小強-{i}");
                element1.SetAttribute("學號", (10000 + i).ToString());
                XmlElement element1_1 = doc.CreateElement("語文成績");
                element1.AppendChild(element1_1);
                element1_1.InnerText = random.Next(50, 100).ToString();
                XmlElement element1_2 = doc.CreateElement("數學成績");
                element1.AppendChild(element1_2);
                element1_2.InnerText = random.Next(50, 100).ToString();
                XmlElement element1_3 = doc.CreateElement("外語成績");
                element1.AppendChild(element1_3);
                element1_3.InnerText = random.Next(50, 100).ToString();

            }
            doc.Save("students.xml");
            listBox.Items.Add("----------");
            listBox.Items.Add("建立成功...");
        }

讀取XML文件程式碼

        /// <summary>
        /// 讀取XML文件
        /// </summary>
        public void ReadXmlDocument(ListBox listBox)
        {
            listBox.Items.Clear();
            if (!File.Exists("students.xml")) return;
            XmlDocument doc = new XmlDocument();
            doc.Load("students.xml");
            
            XmlNode root = doc.SelectSingleNode("students");
            XmlNodeList list = root.ChildNodes;
            foreach (XmlNode node in list)
            {
                XmlElement element = node as XmlElement;

                string name = element.GetAttribute("姓名");
                listBox.Items.Add("姓名:"+name);
                string no = element.GetAttribute("學號");
                listBox.Items.Add("學號:"+no);
                XmlNodeList childList = node.ChildNodes;
                foreach (var childNode in childList)
                {
                    XmlElement childElement = childNode as XmlElement;
                    string score = childElement.Name + ":" + childElement.InnerText;
                    listBox.Items.Add(score);
                }
                listBox.Items.Add("----------");
            }
            listBox.Items.Add("----------");
            listBox.Items.Add("讀取成功...");
        }
    }

創建出的XML

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<students>
  <student 姓名="劉小強-0" 學號="10000">
    <語文成績>59</語文成績>
    <數學成績>54</數學成績>
    <外語成績>93</外語成績>
  </student>
  <student 姓名="劉小強-1" 學號="10001">
    <語文成績>86</語文成績>
    <數學成績>91</數學成績>
    <外語成績>94</外語成績>
  </student>
  <student 姓名="劉小強-2" 學號="10002">
    <語文成績>92</語文成績>
    <數學成績>92</數學成績>
    <外語成績>62</外語成績>
  </student>
  <student 姓名="劉小強-3" 學號="10003">
    <語文成績>91</語文成績>
    <數學成績>85</數學成績>
    <外語成績>61</外語成績>
  </student>
  <student 姓名="劉小強-4" 學號="10004">
    <語文成績>87</語文成績>
    <數學成績>71</數學成績>
    <外語成績>71</外語成績>
  </student>
  <student 姓名="劉小強-5" 學號="10005">
    <語文成績>71</語文成績>
    <數學成績>79</數學成績>
    <外語成績>81</外語成績>
  </student>
  <student 姓名="劉小強-6" 學號="10006">
    <語文成績>59</語文成績>
    <數學成績>77</數學成績>
    <外語成績>51</外語成績>
  </student>
  <student 姓名="劉小強-7" 學號="10007">
    <語文成績>65</語文成績>
    <數學成績>86</數學成績>
    <外語成績>78</外語成績>
  </student>
  <student 姓名="劉小強-8" 學號="10008">
    <語文成績>57</語文成績>
    <數學成績>61</數學成績>
    <外語成績>57</外語成績>
  </student>
  <student 姓名="劉小強-9" 學號="10009">
    <語文成績>72</語文成績>
    <數學成績>88</數學成績>
    <外語成績>85</外語成績>
  </student>
</students>

執行結果