XML与JSON

由于使用的东西不会太深入,所以我就只是简单的学了学,在这里也就只是简单的介绍介绍。

一、有关XML

XML基础

XML(可扩展标记语言)是一种数据语言,它的形式和html代码一样,只不过每个节点都是由我们自己定义。如下:

<book>
  <title>this is a book</title>
  <author>lvren</author>
</book>

上面这段代码里的book,title,author节点都是我们自己定义的。当然还可以设置属性。

C#处理XML

在C#中常用的DOM类:

  1. XmlNode类:表示文档中的一个节点(是许多类的基类)
  2. XmlDocument类:扩展了XmlNode类
  3. XmlElement类:表示Xml文档中的一个元素
    此类常用属性:
    FirstChild:返回当前节点的第一个子节点
    LastChild:返回当前节点的最后一个子节点
    ParentNode:返回当前节点的父节点
    NextSibling:返回当前节点的下一个兄弟节点
    HasChildNodes:检查当前节点是否有子节点(检查是否为空)
  4. XmlAttribute类:表示一个特性(派生于XmlNode类)
  5. XmlText类:表示开始标记与结束标记之间的文本
  6. XmlComment类:表示一种特殊类型的节点
  7. 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;
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值