通过我们跨平台传输,我们需要把某一个平台下特有的数据转化为一种通用的数据类型,序列化和反序列化;
通用形式有两种:《1》JSON:是一种以键值形式组成的;《2》XML:可扩展标记语言;
//一个XML文件形式
<?xml version="1.0" encoding="utf-8"?>
<books>
<book>
<bookname>.NET</bookname>
<price>19</price>
</book>
<books>
XML文件格式要求:
《1》头部需要XML标记;
《2》每一个xml文件有且只有一个根节点;
《3》所有的标签必须闭合;
//XML的读取;
XmlDocument doc = new XmlDocument();//创建文档对象;
doc.Load("D:\\ASP.NET练习\\XML使用\\XmlUsersDome\\XmlUsersDome\\Books.xml");//读取Xml;
XmlNode root = doc.SelectSingleNode("books");//获取节点信息;获取根节点
XmlNodeList bookList = root.SelectNodes("book");//获取根节点下面的book;
XmlNode bookName = bookList[1].SelectSingleNode("bookName");//获取book下面的bookName;
Console.WriteLine(bookName.InnerText);//打印出bookname的书名;
//Xpath读取;
XmlNodeList list = doc.SelectNodes("//bookName");
Console.WriteLine(list[1].InnerText);
XmlNode list = doc.SelectSingleNode("//book[2]/bookName");
Console.WriteLine(list.InnerText);
//XML的写
XmlDocument doc = new XmlDocument();
XmlDeclaration dec =doc.CreateXmlDeclaration("1.0", "utf-8", null);//编写XML的版本信息;
doc.AppendChild(dec);
XmlNode root = doc.CreateElement("students");//创建一个根节点;
doc.AppendChild(root);
XmlNode student1 = doc.CreateElement("student");
XmlNode name1 = doc.CreateElement("name");
name1.InnerText = "张三";
student1.AppendChild(name1);
XmlNode age1 = doc.CreateElement("age");
age1.InnerText = "20";
student1.AppendChild(age1);
root.AppendChild(student1);
doc.Save(@"D:\ASP.NET练习\XML使用\XmlUsersDome\XmlUsersDome\students.xml");
XML和JSON的优缺点
json:《1》优点:比较简单,格式简单,数据是以键值格式呼应;
《2》缺点:不能对数据格式进行约束;
XML:《1》优点:XML格式严格,XML验证可以约束节点的信息,可以对字段进行约束;
《2》缺点:序列化和反序列化麻烦;