17.03.13 .Net基础(四)

2017-03-14  本文已影响11人  CH小猫
XML
创建XML文档
// 1.创建一个XML文档对象
XmlDocument doc = new XmlDocument();
// 2.创建第一行描述信息
XmlDeclaration dec = doc.CreateXmlDeclaration("1.0","utf-8",null);
// 3.将创建的第一行数据添加到文档中
doc.AppendChild(dec);
// 4.给文档添加根节点
XmlElement book = doc.CreateElent("Books");
// 5.将根节点添加给文档对象
doc.AppendChild(book);
// 6.给根节点添加子节点
XmlElement book1 = doc.CreateElent("Book");
// 将子节点book1添加到根节点下
books.AppendChild(book1);
// 7.给book1添加子节点
XmlElement bookName1 = doc.CreateElement("BookName");
// 8.设置标签中显示的文本
bookName1.InnerText = "水浒传";
book1.AppendChild(bookName1);
DOM方式创建XML文档对象
XmlDocument doc = new XmlDocument();
XmlDeclaration dec = doc.CreateXmlDeclaration("1.0","utf-8",null);
doc.AppendChild(dec);
XmlElement order= doc.CreateElent("Order");
doc.AppendChild(order);
XmlElement customerName= doc.CreateElent("CustomerName");
customerName.InnerXml = "小猫";
// 添加节点的属性
customerName.setAttribute("ID","0101");
order.AppendChild(customerName);
文档对象模型
List<Student> list = new List<Student>();
list.Add(new Student() { ID = 1, Name = "小猫", Age="30" });
XmlDocument doc = new XmlDocument();
XmlDeclaration dec = doc.CreateXmlDeclaration("1.0","utf-8",null);
doc.AppendChild(dec);
XmlElement person= doc.CreateElent("Person");
doc.AppendChild(person);
// 通过循环List集合,所有对象,以节点的形式添加到XML文档中
for(int i = 0; i < list.Count; i++)
{
  XmlElement student = doc.CreateElement("Student");
  student.SetAttribute("studentID", list[i].ID.ToString());
  XmlElement name= doc.CreateElement("Name");
  name.InnerXml = list[i].Name;
  XmlElement age= doc.CreateElement("Age");
  age.InnerXml = list[i].Age.ToString();
  person.AppendChild(student);
  student.AppendChild(name);
  student.AppendChild(age);
}
XML文档的增删改查
XmlDocument doc  = new XmlDocument();
if(File.Exists("Student.xml"))
{
  //加载文件
  doc.Load("Student.xml");
  //获得根节点
  XmlElement person = doc.DocumentElement;
}
else
{
  //不存在
  XmlDeclaration dec = doc.CreateXmlDeclaration("1.0","utf-8",null);
  doc.AppendChild(dec);
  XmlElement order= doc.CreateElent("Order");
  doc.AppendChild(order);
}
XmlDocument doc  = new XmlDocument();
doc.Load("order.xml");
// 获得根节点
XmlElement order = doc.DocumentElement;
// 获得根节点下面的所有子节点
XmlNodeList xnl = order.ChildNodes;
foreach (XmlNode item in xnl)
{
  Console.WriteLine(item.InnerText);
}
使用XPath的方式来读取XML文件
XmlDocument doc  = new XmlDocument();
doc.Load("order.xml");
// 获得根节点
XmlElement order = doc.DocumentElement;
XmlNode xn = order.SelectSingleNode("/Order/CustomerName[@Name='雨衣']");
委托
public delegate string DelProStr(string str);
static void ProString(string[] names,DelProStr del)
{
  for(int i = 0; i < names.Lenght; i++)
  {
    names[i] = names[i].ToLower();
  }
}

ProString(names, (name) => { return name.ToUpper(); });
泛式委托
static T GetMax<T> (T[] nums, DelCompare<T> del)
{
  T max = nums[0];
  for(int i = 0; i < nums.Length; i++)
  {
    if(del(max, nums[i]) < 0)
    {
      max = nums[i];
    }
  }
  return max;
}
多播委托
public delegate void DelTest();
DelTest del = Test1;
del += Test2;
del += Test3;
del += Test4;
del -= Test2;
del();

static void Test1(){}
static void Test2(){}
static void Test3(){}
static void Test4(){}
定义事件
委托与事件总结
上一篇 下一篇

猜你喜欢

热点阅读