由于使用的东西不会太深入,所以我就只是简单的学了学,在这里也就只是简单的介绍介绍。
一、有关XML
XML基础
XML(可扩展标记语言)是一种数据语言,它的形式和html代码一样,只不过每个节点都是由我们自己定义。如下:
<book>
<title>this is a book</title>
<author>lvren</author>
</book>
上面这段代码里的book,title,author节点都是我们自己定义的。当然还可以设置属性。
C#处理XML
在C#中常用的DOM类:
- XmlNode类:表示文档中的一个节点(是许多类的基类)
- XmlDocument类:扩展了XmlNode类
- XmlElement类:表示Xml文档中的一个元素
此类常用属性:
FirstChild:返回当前节点的第一个子节点
LastChild:返回当前节点的最后一个子节点
ParentNode:返回当前节点的父节点
NextSibling:返回当前节点的下一个兄弟节点
HasChildNodes:检查当前节点是否有子节点(检查是否为空) - XmlAttribute类:表示一个特性(派生于XmlNode类)
- XmlText类:表示开始标记与结束标记之间的文本
- XmlComment类:表示一种特殊类型的节点
- XmlNodeList类:表示一个节点集合
获取节点值的三种属性:
1. InnerText:获取当前节点中所有子节点的文本组合成一个字符串返回
2. InnerXml:返回所有标记(所有子节点及其文本)
3. Value:
创建节点的方法:
1. CreateNode:创建任意类型的节点
2. CreateElement:只能创建XmlElements类型的节点
3. CreateAttribute:只能创建XmlAttribute类型的节点
4. CreateTextNode:创建XmlTextNode节点
5. CreateComment:创建注释
在创建节点后,节点并没有包含其它信息,节点也没有插入到文档中。
插入节点的方法:
1. AppendChild:将一个节点追加到某个节点上
2. InsertAfter:在某个节点后面插入一个节点
3. InsertBefore:在某个节点前面插入一个节点
删除节点的方法:
1. RemoveAll:删除节点上的所有子节点
2. RemoveChild:删除节点上的一个子节点
开始处理XML文档
载入一个xml:
//使用System.Xml声明
XmlDocument document = new XmlDocument();
document.Load();//括号里可填入XMl文档所在路径,也可以是一个保存XML文档内容的字符串。这一步是加载XML。
访问xml:
在处理xml时,必须先定位道一个节点才能对其开始处理。
XmlElement root = document.DocumentElement;//获取根节点
Console.WriteLine(document.FirstChild.Name);//输出第一个子节点的节点名称
Console.WriteLine(document.LastChild.Name);//输出最后一个子节点的节点名称
在上面这个程序中,如果没有获取根节点这一步,那么下面这样个子节点都会输出根节点,因为这时还没有定位到任何一个具体节点,所以还是在整个文档流上面进行操作。
创建节点:
//创建节点
XmlElement root = document.DocumentElement;
XmlElement newBook = document.CreateElement("book");
XmlElement newTitle = document.CreateElement("title");
XmlElement newAuthor = document.CreateElement("author");
XmlElement newCode = document.CreateElement("code");
//创建节点内容
XmlText title = document.CreateTextNode("beginning C#");
XmlText author = document.CreateTextNode("lvren");
XmlText codo = document.CreateTextNode("123456");
XmlComment commont = document.CreateComment("hello");
//组合节点
newBook.AppendChild(commont);
newBook.AppendChild(newTitle);
newBook.AppendChild(newAuthor);
newBook.AppendChild(newCode);
newTitle.AppendChild(title);
newAuthor.AppendChild(author);
newCode.AppendChild(codo);
//将节点插入文档中并保存
root.InsertAfter(newBook, root.LastChild);
document.Save("Books.xml");
在这里先创建节点,再创建节点的内容,然后将各节点的内容插入节点中,当一切都准备好后,然后将整个节点插入文档中并保存。
还有删除很简单就不说了,直接调用删除方法即可。
二、有关JSON
JSON基础
JSON(JavaScript Object Notation)也是一种很常用的格式,虽说看名字是源于JavaScript的,但是却像XML一样在Web服务中很常用。
C#处理JSON
C#原生对JSON的支持并不完美,不过可以使用拓展库Newtonsoft.JSON.NET
这个包来处理
将XML转换成JSON
也是使用上面的拓展库,如下:
private string XmlToJson()
{
XmlDocument document = new XmlDocument();
document.load(books);
string json = Newtonsoft.Json.JsonConvert.SerializeXmlNode(document);
return json;
}