文章对下面博主的博客进行了学习,做了记录
这是博主博客的网址
Tinyxml2理解
XML文件本质就是小型的数据库,对数据库有什么操作就会对XML文件能实现什么样的操作
在学习JAVA做项目的时候,基本用到的都是MYSQL的数据库,我们对数据库无非进行了下面的操作:
新建数据库,删除数据库
对某个数据库增加表,删除表
对表添加属性,删除属性,添加属性值,删除属性值
那么对应XML文件就是新建XML文件,删除XML文件
增加XML节点,删除XML文件指定节点
查询XML文件指定节点的值,修改XML文件节点的值
XML用途:XML应用于Web开发的许多方面,常用于简化数据的存储和共享
XML简化数据共享:XML数据以纯文本格式进行存储,因此提供了一种独立于软件和硬件的数据存储方法,让创建不同应用程序可以共享的数据变得更加容易
XML简化数据传输:通过XML,可以在不兼容的系统之间轻松地交换数据
XML简化平台的变更:XML数据以文本格式存储,这使得XML在不损失数据的情况下,更容易扩展或升级到新的操作系统
XML使得数据更加有用:不同的应用程序都能够访问数据,不仅仅在HTML中,也可以从XML数据源中进行访问,通过XML,你的数据可以提供给各种阅读设备使用
XML用于创建新的Internet语言:很多新的Internet语言都是通过XML创建的
XML数据结构:形成树结构,从根部开始,然后扩展到枝叶
XML文档必须包含根元素,该元素是其他元素的父元素。XML文档中的元素属形成了一颗文档树。这棵树从根部开始,并扩展到树的低端
XML语法 XML语法规则简单,很有逻辑
所有XML元素都必须有关闭标签。在XML中,省略关闭标签是非法的,所有的元素都必须有关闭标签。在HTML中,经常看到没有关闭的标签元素
XML声明没有关闭标签这不是错误,声明不属于XML本身的组成部分。它不是XML元素,也不需要关闭标签。
XML标签对大小写敏感。XML元素使用XML标签进行定义。必须使用相同大小写来编写打开标签和关闭标签。打开标签和关闭标签通常被称为开始标签和结束标签。
XML必须正确的嵌套。在HTML中,经常看到没有正确嵌套的元素。在XML中,所有元素都必须彼此正确地嵌套。
XML文档必须有根元素。XML文档必须有一个元素是其他元素的父元素,该元素称为根元素
XML的属性须加引号
XML的节点,元素,属性值的关系
XMLNode: 是几乎XML所有元素的基类,XML本质是一种树形结构,整个XML就是由许多节点组成的(比如可以具象为:XML文件就是一个数据库,而XML的节点就是一个数据表,数据库中肯定是由多个数据表组成的,而数据表中又会有很多属性和属性值)
XMLElement: 在XMLNode中最重要的一个类,存储方式有和两种形式,它包含了一个XMLAttribute的根指针,这个root指针指向XMLAttribute的第一个属性键值对
XMLAttribute: 是解析XML的属性的类,XML中的属性都与XML的 Element绑定,并且为key——value类型
XMLComment: 主要是处理XML注释的类,注释的存储形式为“”
**XMLDeclaration:**主要处理XML中声明的类,声明的存储形式为<? declaration?>
**XMLDocument:**代表XML整个实体,TinyXML2中只有XMLDocument类可以被实例化,其他的类必须通过XMLDocument提供的new方法进行实例化,而不能直接实例化。
XMLNode的其他实体类把构造函数定义为protected,不能被外部实例化,这样保证使用XMLDocumnet进行内存的管理,避免产生内存泄露的风险
**XMLText:**主要是处理XML文本的类,文本的信息又分为CDATA和普通文本 ,CDATA 是有专属的 开始字符"<![CDATA[“,而普通的文本存储形式如”>text<"
XMLUnknown: 存储形式为"<! unknown>"
XMLVisitor: 访问者模式的基类,它主要定义了访问者的接口,而在XMLNode的子类的accept方法中调用这些方法来完成对自身的访问
**XMLPrinter:**是 XMLVisitor类的子类,主要实现的写XML的功能,其提供了两种书写的方式,一种是构建XMLDocument,二是直接push字段
XMLNode是一个抽象类
一个Document能够包括:Element,Comment,Unknown,Declaration
一个Element 能够包括:Element,Text,Common,Unknown,Attributes
<?xml version="1.0" encoding="UTF-8" standa