码迷,mamicode.com
首页 > Windows程序 > 详细

C#第十三天

时间:2015-11-15 10:52:59      阅读:526      评论:0      收藏:0      [点我收藏+]

标签:

1、单例模式

1)将构造函数私有化

2)提供一个静态方法,返回一个对象

3)创建一个单例

技术分享
 1 namespace 单例模式
 2 {
 3     public partial class Form1 : Form
 4     {
 5         public Form1()
 6         {
 7             InitializeComponent();
 8         }
 9 
10         private void button1_Click(object sender, EventArgs e)
11         {
12             Form2 f2 = Form2.GetSingle();
13             f2.Show();
14         }
15     }
16 }
View Code
技术分享
 1 namespace 单例模式
 2 {
 3     public partial class Form2 : Form
 4     {
 5         //全局唯一的单例(只能打开一个窗体)
 6         public static Form2 _FormSingle = null;
 7         private Form2()
 8         {
 9             InitializeComponent();
10         }
11         public static Form2 GetSingle()
12         {
13             if (_FormSingle==null)
14             {
15                 _FormSingle = new Form2();
16             }
17             return _FormSingle;
18         }
19 
20     }
21 }
View Code

 2、XML 可扩展的标记语言 

XML:存储数据 注意:XML是严格区分大小写的,XML标签也是成对出现的

XML有且只能有一个根节点

元素:

节点:

在实际的应用开发中需要我们对xml进行添加节点和属性,动态的去完成,在这之前,先看看XmlNode和XmlElement之间的关系

1)、XmlElement继承XmlLinkedNode又继承XmlNode,所以XmlElement是XmlNode的子集,那么从继承的关系来说,XmlNode的属性,XmlElement也可以使用。

2)、XmlNode是.Net提供的抽象类,不能直接实例化,只能通过XmlDocument的CreateNode方法来创建,但是XmlElement则不需要,可以直接实例化创建

3)、为节点添加属性的时候,可以直接通过XmlElement的SetAttribute来添加,也可以通过XmlNode的Attribute的add方法来添加,同样添加文本节点的时候也是如此

4)、XmlDocument是XmlNode的扩展类,包含了很多XmlNode没有的方法和属性,我们可以通过它将xml加载到内存中通过Dom来处理,也可以通过它来创建节点等

下面就来看看如何添加节点和属性

1)、首先我们需要创建一个节点元素,创建的时候我们可以通过XmlDocument的CreateElement来创建,或者是通过

XmlElement直接实例化,然后通过属性赋值,比如Name

2)、创建一个XmlNode,也就是说创建的节点需要放在什么位置,然后创建的节点加入该XmlNode后面就可以了(可以通过

XmlNode的AppendChild方法来添加),比如加入根目录下面:XmlDocument.DocumentElement.PrependChild

(XmlElement),如果是其他节点下,可以通过Xmldocument的SelectSingleNode("//Titles//Title")来获得XmlNode

3)、添加属性的时候,可以直接在创建XmlElment的时候,通过XmlElement的SetAttribute来为节点创建属性,或者是创建

一个XmlAttribute实例:XmlAttribute xmlArr=XmlDocument.CreateAttribute("属性值"),然后通过XmlNode的

Attributes.add(XmlArribute)来添加

创建XML:

技术分享
 1 namespace 创建XML
 2 {
 3     class Program
 4     {
 5         static void Main(string[] args)
 6         {
 7             //通过代码来创建XML文档
 8             //1.引用命名空间
 9             //2.创建XML文档对象
10             XmlDocument doc = new XmlDocument();
11             //3.创建第一行描述信息,并且添加到doc文档中
12             XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null);
13             doc.AppendChild(dec);
14             //4.创建根节点
15             XmlElement books = doc.CreateElement("Books");
16             //将根节点添加到文档中
17             doc.AppendChild(books);
18             //5.给根节点Books创建子节点
19             XmlElement book1 = doc.CreateElement("Book");
20             //将book添加到根节点
21             books.AppendChild(book1);
22             //6.给book1添加子节点
23             XmlElement name1 = doc.CreateElement("Name");
24             name1.InnerText = "西游记";
25             book1.AppendChild(name1);
26             XmlElement price1 = doc.CreateElement("Price");
27             price1.InnerText = "10";
28             book1.AppendChild(price1);
29             XmlElement des1 = doc.CreateElement("Des");
30             des1.InnerText = "好看";
31             book1.AppendChild(des1);
32             
33 
34             XmlElement book2 = doc.CreateElement("Book");
35             books.AppendChild(book2);
36             XmlElement name2 = doc.CreateElement("Name");
37             name2.InnerText = "水浒传";
38             book2.AppendChild(name2);
39             XmlElement price2 = doc.CreateElement("Price");
40             price2.InnerText = "20";
41             book2.AppendChild(price2);
42             XmlElement des2 = doc.CreateElement("Des");
43             des2.InnerText = "好好好";
44             book2.AppendChild(des2);
45 
46             doc.Save("Books.xml");
47             Console.WriteLine("保存成功");
48             Console.ReadKey();
49         }
50     }
51 }
View Code

创建带属性的XML:

技术分享
 1 namespace 创建带属性的XML
 2 {
 3     class Program
 4     {
 5         static void Main(string[] args)
 6         {
 7             XmlDocument doc = new XmlDocument();
 8             XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null);
 9             doc.AppendChild(dec);
10 
11             XmlElement order = doc.CreateElement("Order");
12             doc.AppendChild(order);
13             XmlElement CustomerName = doc.CreateElement("CustomerName");
14             //CustomerName.InnerXml = "<p>我是一个标签</p>";
15             CustomerName.InnerXml = "<p>我是一个p标签</p>";
16             order.AppendChild(CustomerName);
17             XmlElement CustomerNumber = doc.CreateElement("CustomerNumber");
18             CustomerNumber.InnerText = "<p>我是一个标签</P>";
19             order.AppendChild(CustomerNumber);
20             XmlElement items = doc.CreateElement("Items");
21             order.AppendChild(items);
22 
23             XmlElement orderItem1 = doc.CreateElement("OrderItem");
24             //给节点添加属性
25             orderItem1.SetAttribute("Name", "西游记");
26             orderItem1.SetAttribute("Count", "10");
27             items.AppendChild(orderItem1);
28             XmlElement orderItem2 = doc.CreateElement("OrderItem");
29             //给节点添加属性
30             orderItem2.SetAttribute("Name", "西游记");
31             orderItem2.SetAttribute("Count", "10");
32             items.AppendChild(orderItem2);
33             XmlElement orderItem3 = doc.CreateElement("OrderItem");
34             //给节点添加属性
35             orderItem3.SetAttribute("Name", "西游记");
36             orderItem3.SetAttribute("Count", "10");
37             items.AppendChild(orderItem3);
38             doc.Save("Order.xml");
39             Console.WriteLine("保存成功");
40             Console.ReadKey();
41         }
42     }
43 }
View Code

读取XML:

技术分享
 1 namespace 读取XML
 2 {
 3     class Program
 4     {
 5         static void Main(string[] args)
 6         {
 7             XmlDocument doc = new XmlDocument();
 8             //加载需要读取的xml
 9             doc.Load("Books.xml");
10             //获得根节点
11             XmlElement books = doc.DocumentElement;
12             //获得子节点
13             XmlNodeList xnl = books.ChildNodes;
14             foreach (XmlNode item in xnl)
15             {
16                 Console.WriteLine(item.InnerText); 
17             }
18             Console.ReadKey();
19         }
20     }
21 }
View Code

读取带属性的XML

技术分享
 1 namespace 读取带属性的XML
 2 {
 3     class Program
 4     {
 5         static void Main(string[] args)
 6         {
 7             XmlDocument doc = new XmlDocument();
 8             doc.Load("Order.xml");
 9             XmlNodeList xnl = doc.SelectNodes("/Order/Items/OrderItem");
10             foreach (XmlNode node in xnl)
11             {
12                 Console.WriteLine(node.Attributes["Name"].Value);
13                 Console.WriteLine(node.Attributes["Count"].Value);
14             }
15             Console.ReadKey();
16         }
17     }
18 }
View Code

删除节点:

技术分享
 1 namespace 删除节点
 2 {
 3     class Program
 4     {
 5         static void Main(string[] args)
 6         {
 7             XmlDocument doc = new XmlDocument();
 8             doc.Load("Order.xml");
 9             XmlNode xn = doc.SelectSingleNode("/Order/Items");
10             xn.RemoveAll();
11             doc.Save("Order.xml");
12             Console.WriteLine("删除成功 ");
13         }
14     }
15 }
View Code

追加XML:

技术分享
 1 namespace 追加XML
 2 {
 3     class Program
 4     {
 5         static void Main(string[] args)
 6         {
 7             //追加XML文档
 8             XmlDocument doc = new XmlDocument();
 9             XmlElement books;
10             if (File.Exists("Books.xml"))
11             {
12                 //如果文件存在 加载XML
13                 doc.Load("Books.xml");
14                 //获得文件的根节点
15                 books = doc.DocumentElement;
16 
17             }
18             else
19             {
20                 //如果文件不存在
21                 //创建第一行
22                 XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null);
23                 doc.AppendChild(dec);
24                 //创建根节点
25                 books = doc.CreateElement("Books");
26                 doc.AppendChild(books);
27 
28             }
29             //5.给根节点Books创建子节点
30             XmlElement book1 = doc.CreateElement("Book");
31             //将book添加到根节点
32             books.AppendChild(book1);
33             //6.给book1添加子节点
34             XmlElement name1 = doc.CreateElement("Name");
35             name1.InnerText = "西游记";
36             book1.AppendChild(name1);
37             XmlElement price1 = doc.CreateElement("Price");
38             price1.InnerText = "10";
39             book1.AppendChild(price1);
40             XmlElement des1 = doc.CreateElement("Des");
41             des1.InnerText = "好看";
42             book1.AppendChild(des1);
43 
44             doc.Save("Books.xml");
45         }
46     }
47 }
View Code

 

C#第十三天

标签:

原文地址:http://www.cnblogs.com/ggsdduzbl/p/4964866.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!