原理
在反序列化的时候同样用到了树。工作原理见下。
1.最首先的结点对应着树的根节点;
2.往后每遇到一个标签,就申请一个结点作为当前节点的孩子节点;
3.若遇到的是正文,就把内容保存在当前节点的数据域中;
4.若遇到闭合标签,操纵树的指针指向回退到当前结点的父节点。
5.若xml数据合法,最终指针退回到根节点,数据就保存在树中。
至此一棵树就构造完了,有名字有内容,再把用这些信息构造一个对象就不难了。
1.最首先的结点对应着树的根节点;
2.往后每遇到一个标签,就申请一个结点作为当前节点的孩子节点;
3.若遇到的是正文,就把内容保存在当前节点的数据域中;
4.若遇到闭合标签,操纵树的指针指向回退到当前结点的父节点。
5.若xml数据合法,最终指针退回到根节点,数据就保存在树中。
至此一棵树就构造完了,有名字有内容,再把用这些信息构造一个对象就不难了。
网络通信中传输对象的需求太普遍了,于是人们就想到了用字符串来描述一个对象。主流的格式有两种,xml与json。前者是有层次的一些标签对;后者只是键值对,用大括号作为边界。因为json中少了闭合标签,所以传输同样的对象比起xml会占用更少的字节长度。但xml的优点在于更适合人来阅读,因为它层次感很强。
易用的方法
跟c#自带的 Serialization类一样方便!
难用的方法
javax.xml.parsers.* 太难用啦