由于平时在学校XML操作这一块几乎没怎么使用过,这几天闲着没事情,就在博客园逛逛,顺便写写东西,留作自己的学习资料。这样的列子在博客园很多,重叠也很多.
1:XML文件 Basket.xml

1
<?xml version="1.0" encoding="utf-16"?>
2
<Rocket>
3
<hoopman id="1">
4
<Name>姚明</Name>
5
<Age>27</Age>
6
<Postion>中锋</Postion>
7
<img>1.jpg</img>
8
</hoopman>
9
<hoopman id="2">
10
<Name>麦蒂</Name>
11
<Age>28</Age>
12
<Postion>大前锋</Postion>
13
<img>2.jpg</img>
14
</hoopman>
15
<hoopman id="3">
16
<Name>斯科拉</Name>
17
<Age>29</Age>
18
<Postion>小前锋</Postion>
19
<img>3.jpg</img>
20
</hoopman>
21
<hoopman id="4">
22
<Name>布鲁克斯</Name>
23
<Age>21</Age>
24
<Postion>控卫</Postion>
25
<img>4.jpg</img>
26
</hoopman>
27
</Rocket>
28
29
30
2:创建C#窗体
我一直不大明白文件和目录的区别,
帮我看看问题 虽然解决啦 ,
注意:
doc.Load(@"D:/My Documents/Visual Studio 2005/Projects/XMLExe/XMLExe/Basket.xml");
我看别人博客上有人写的是doc.Load("Book.xml");
这两者之间有什么区别,
不是很明白,由于本人技术比较菜
1:XML文件 Basket.xml
1
<?xml version="1.0" encoding="utf-16"?>2
<Rocket>3
<hoopman id="1">4
<Name>姚明</Name>5
<Age>27</Age>6
<Postion>中锋</Postion>7
<img>1.jpg</img>8
</hoopman>9
<hoopman id="2">10
<Name>麦蒂</Name>11
<Age>28</Age>12
<Postion>大前锋</Postion>13
<img>2.jpg</img>14
</hoopman>15
<hoopman id="3">16
<Name>斯科拉</Name>17
<Age>29</Age>18
<Postion>小前锋</Postion>19
<img>3.jpg</img>20
</hoopman>21
<hoopman id="4">22
<Name>布鲁克斯</Name>23
<Age>21</Age>24
<Postion>控卫</Postion>25
<img>4.jpg</img>26
</hoopman>27
</Rocket>28

29

30

1 using System.Text;
2 using System.Windows.Forms;
3 using System.IO;
4 using System.Xml;
5 namespace XMLExe
6 {
7 public partial class Form1 : Form
8 {
9 XmlDocument doc;
10 XmlNode Node;
11 public Form1()
12 {
13 InitializeComponent();
14 doc = new XmlDocument();
15 doc.Load("Basket.xml");
16 Node = doc.SelectSingleNode("Rocket");
17 }
18
19 private void textBox1_TextChanged(object sender, EventArgs e)
20 {
21
22 }
23
24 private void button1_Click(object sender, EventArgs e)
25 {
26 XmlElement hoopman = doc.CreateElement("hoopman");
27 hoopman.SetAttribute("id","5");
28 XmlElement Name = doc.CreateElement("Name");
29 Name.InnerText = "巴蒂尔";
30 XmlElement Age = doc.CreateElement("Age");
31 Age.InnerText = "29";
32 XmlElement Postion = doc.CreateElement("Postion");
33 Postion.InnerText = "小前锋";
34 XmlElement img = doc.CreateElement("img");
35 img.InnerText = "5.jpg";
36 hoopman.AppendChild(Name);
37 hoopman.AppendChild(Age);
38 hoopman.AppendChild(Postion);
39 hoopman.AppendChild(img);
40 Node.AppendChild(hoopman);
41 doc.Save("Basket.xml");
42 Output();
43 }
44
45 public void Output()
46 {
47 using(FileStream fs=File.Open("Basket.xml",FileMode.OpenOrCreate))
48 {
49 using(StreamReader sr=new StreamReader(fs))
50 {
51 this.textBox1.Text = sr.ReadToEnd();
52 }
53 }
54 }
55
56 private void button3_Click(object sender, EventArgs e)
57 {
58 //看姚明不爽 删除他
59 XmlNodeList NodeList = Node.ChildNodes;
60 foreach (XmlNode node in NodeList)
61 {
62 XmlElement element = (XmlElement)node;
63 if (element.GetAttribute("id") == "1" && node.SelectSingleNode("Name").InnerText=="姚明")
64 {
65 node.ParentNode.RemoveChild(node);
66 break;
67 }
68 }
69 doc.Save("Basket.xml");
70 Output();
71 }
72
73 private void button2_Click(object sender, EventArgs e)
74 {
75 //妈的 巴蒂尔 年龄太大,给他改小一点
76 XmlNodeList NodeList = Node.ChildNodes;
77 foreach (XmlNode node in NodeList)
78 {
79 XmlElement element = (XmlElement)node;
80 if (element.GetAttribute("id") == "5" && node.SelectSingleNode("Name").InnerText == "巴蒂尔")
81 {
82 element.SetAttribute("Age", "25");
83 break;
84 }
85 }
86 doc.Save("Basket.xml");
87 Output();
88 }
89 }
90 }
在写这些的时候 ,我一直有个问题不大明白对于一些方法的参数而言 哪些地方需要用的是文件名,哪些地方是他的路径2 using System.Windows.Forms;
3 using System.IO;
4 using System.Xml;
5 namespace XMLExe
6 {
7 public partial class Form1 : Form
8 {
9 XmlDocument doc;
10 XmlNode Node;
11 public Form1()
12 {
13 InitializeComponent();
14 doc = new XmlDocument();
15 doc.Load("Basket.xml");
16 Node = doc.SelectSingleNode("Rocket");
17 }
18
19 private void textBox1_TextChanged(object sender, EventArgs e)
20 {
21
22 }
23
24 private void button1_Click(object sender, EventArgs e)
25 {
26 XmlElement hoopman = doc.CreateElement("hoopman");
27 hoopman.SetAttribute("id","5");
28 XmlElement Name = doc.CreateElement("Name");
29 Name.InnerText = "巴蒂尔";
30 XmlElement Age = doc.CreateElement("Age");
31 Age.InnerText = "29";
32 XmlElement Postion = doc.CreateElement("Postion");
33 Postion.InnerText = "小前锋";
34 XmlElement img = doc.CreateElement("img");
35 img.InnerText = "5.jpg";
36 hoopman.AppendChild(Name);
37 hoopman.AppendChild(Age);
38 hoopman.AppendChild(Postion);
39 hoopman.AppendChild(img);
40 Node.AppendChild(hoopman);
41 doc.Save("Basket.xml");
42 Output();
43 }
44
45 public void Output()
46 {
47 using(FileStream fs=File.Open("Basket.xml",FileMode.OpenOrCreate))
48 {
49 using(StreamReader sr=new StreamReader(fs))
50 {
51 this.textBox1.Text = sr.ReadToEnd();
52 }
53 }
54 }
55
56 private void button3_Click(object sender, EventArgs e)
57 {
58 //看姚明不爽 删除他
59 XmlNodeList NodeList = Node.ChildNodes;
60 foreach (XmlNode node in NodeList)
61 {
62 XmlElement element = (XmlElement)node;
63 if (element.GetAttribute("id") == "1" && node.SelectSingleNode("Name").InnerText=="姚明")
64 {
65 node.ParentNode.RemoveChild(node);
66 break;
67 }
68 }
69 doc.Save("Basket.xml");
70 Output();
71 }
72
73 private void button2_Click(object sender, EventArgs e)
74 {
75 //妈的 巴蒂尔 年龄太大,给他改小一点
76 XmlNodeList NodeList = Node.ChildNodes;
77 foreach (XmlNode node in NodeList)
78 {
79 XmlElement element = (XmlElement)node;
80 if (element.GetAttribute("id") == "5" && node.SelectSingleNode("Name").InnerText == "巴蒂尔")
81 {
82 element.SetAttribute("Age", "25");
83 break;
84 }
85 }
86 doc.Save("Basket.xml");
87 Output();
88 }
89 }
90 }
我一直不大明白文件和目录的区别,
帮我看看问题 虽然解决啦 ,
注意:
doc.Load(@"D:/My Documents/Visual Studio 2005/Projects/XMLExe/XMLExe/Basket.xml");
我看别人博客上有人写的是doc.Load("Book.xml");
这两者之间有什么区别,
不是很明白,由于本人技术比较菜