17.03.13 .Net基础(四)

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文档的增删改查
  • 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);
}
  • 读取XML文档
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(){}
定义事件
  • 语法:访问修饰符 event 委托名称 事件名称;
  • 定义事件
    public delegate void delTest;
    public event delTest eventTest;
  • 注册事件
    eventTest += new delTest(method1);
    eventTest += new delTest(method2);
委托与事件总结
  • 委托的作用:占位,在不知道将来要执行的方法的具体代码时,可以先用委托变量来代替方法调用(委托的返回值,参数列表要确定).在实际调用之前,需要为委托赋值,否则为null.
  • 事件的作用:事件的作用与委托变量一样,只是功能上比委托变量有更多的限制.(比如:1.只能通过+=或-=来绑定方法(事件处理程序) 2.只能在类内部调用(触发)事件)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,185评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,812评论 18 399
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,696评论 0 17
  • 一. Java基础部分.................................................
    wy_sure阅读 3,854评论 0 11
  • 在去年的一次心理咨询中,咨询师问我:在你眼中,你认为自己是谁?我说我是一个妈妈,一个妻子,一个女儿,一个员工,一个...
    无尽蔓阅读 217评论 2 3