====== XmlWriter ====== **//Inherited from//** NULL **//Inherited by//** NULL **//Friend class//** [[class::kernel::xmlreader|XmlReader]] **//Description//** XML((可扩展标记语言))是用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML是标准通用标记语言 (SGML) 的子集,非常适合 Web 传输。XML 提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。 \\ 在K2中Xml的读入写出接口都通过xml文档引擎(XmlDocument)来实现,文档引擎解析xml文件之后会形成一系列xml元素(XmlElement)的树形结构,xml元素由标签、文本内容以及属性和子元素组成。XmlWriter是对Xml库写出接口的封装,可通过XmlWriter对象组织数据最后写出xml文件。 **//Members//** * char [[xmlwriter#m_strxmlfile|m_strXmlFile]][MAX_PATH_LENGTH] * XmlDocument * [[xmlwriter#m_pxml|m_pXml]] * bool [[xmlwriter#m_bcloned|m_bCloned]] **//Public interface//** * [[xmlwriter#xmlwriter1|XmlWriter]](const char * xml = 0) * void [[xmlwriter#clone|clone]](XmlReader * pReader) * void [[xmlwriter#save|save]]() * void [[xmlwriter#setfile|setFile]](const char * xml) * const char * [[xmlwriter#getfilename|getFileName]]() * void [[xmlwriter#setroot|setRoot]](const char * root,const char * name = 0, const char * att = 0) * XmlElement * [[xmlwriter#addelement|addElement]](XmlElement * pParent, const char * tag,const char * text = 0) * XmlElement * [[xmlwriter#addelement|addElement]](XmlElement * pParent, const char * tag,int v) * XmlElement * [[xmlwriter#addelement|addElement]](XmlElement * pParent, const char * tag,double v) * XmlElement * [[xmlwriter#adduielement|addUIElement]](XmlElement * pParent, const char * name,const char * label,int type,int v) * XmlElement * [[xmlwriter#adduielement|addUIElement]](XmlElement * pParent, const char * name,const char * label,int type,double v) * XmlElement * [[xmlwriter#adduielement|addUIElement]](XmlElement * pParent, const char * name,const char * label,int type,const char * v = 0) * void [[xmlwriter#removeelement|removeElement]](XmlElement * pElem) * void [[xmlwriter#addstringattribute|addStringAttribute]](XmlElement * pElement,const char * name,const char * att) * void [[xmlwriter#adddoubleattribute|addDoubleAttribute]](XmlElement * pElement,const char * name,double att) * void [[xmlwriter#addintattribute|addIntAttribute]](XmlElement * pElement,const char * name,int att) ---- {{anchor:m_strxmlfile}} **char m_strXmlFile** xml文件路径名 {{anchor:m_pxml}} **XmlDocument * m_pXml** 文档引擎,支持数据的添加和写出 {{anchor:m_bcloned}} **bool m_bCloned** 文档引擎是否和另外的XmlReader共享 ---- {{anchor:xmlwriter1}} **XmlWriter(const char * xml = 0)** *function: 构建XmlWriter对象 *parameters: - [i]const char * xml = 0:xml文件名 *return value: 无 {{anchor:clone}} **void clone(XmlReader * pReader)** *function: 共享pReader的文档引擎 *parameters: - [i]XmlReader * pReader: XmlReader对象 *return value: 无 {{anchor:save}} **void save()** *function: 将文档引擎的所有数据保存为xml文件 *parameters: NULL *return value: 无 {{anchor:setfile}} **void setFile(const char * xml)** *function: 设置xml文件路径名,此时会清空现有数据,并且重置文档引擎共享标志(不共享) *parameters: - [i]const char * xml: xml文件路径名 *return value: 无 {{anchor:getfilename}} **const char * getFileName()** *function: 获取xml文件路径名 *parameters: NULL *return value: xml文件路径名 {{anchor:setroot}} **void setRoot(const char * root,const char * name = 0, const char * att = 0)** *function: 设置文档引擎的根元素 *parameters: - [i]const char * root: 根元素的标签 - [i]const char * name = 0: 根元素的属性 - [i] const char * att = 0: 属性值 *return value: 无 {{anchor:addelement}} **XmlElement * addElement(XmlElement * pParent, const char * tag,const char * text = 0)** *function: 给指定xml元素添加子元素,该子元素标签为tag,文本内容为text *parameters: - [i]XmlElement * pParent: 父元素 - [i] const char * tag: 子元素的标签 - [i]const char * text = 0: 子元素的文本内容 *return value: 添加的子元素指针 {{anchor:addelement}} **XmlElement * addElement(XmlElement * pParent, const char * tag,int v)** *function: 给指定xml元素添加子元素,该子元素标签为tag,内容为整数v *parameters: - [i]XmlElement * pParent: 父元素 - [i] const char * tag: 子元素的标签 - [i]int v: 子元素的整数内容 *return value: 添加的子元素指针 {{anchor:addelement}} **XmlElement * addElement(XmlElement * pParent, const char * tag,double v)** *function: 给指定xml元素添加子元素,该子元素标签为tag,内容为浮点数v *parameters: - [i]XmlElement * pParent: 父元素 - [i] const char * tag: 子元素的标签 - [i]double v: 子元素的浮点数内容 *return value: 添加的子元素指针 {{anchor:adduielement}} **XmlElement * addUIElement(XmlElement * pParent, const char * name,const char * label,int type,int v)** *function: 该函数为定制GUI的配置文件专用接口,添加一个名称为name,显示标签为label,类型为type,初始值为v的控件条目 *parameters: - [i]XmlElement * pParent: 父元素 - [i] const char * name: 控件名 - [i]const char * label: 控件显示标签 - [i]int type: 控件类型 - [i]int v: 初始整数值 *return value: 控件条目所对应的xml元素 {{anchor:adduielement}} **XmlElement * addUIElement(XmlElement * pParent, const char * name,const char * label,int type,double v)** *function: 该函数为定制GUI的配置文件专用接口,添加一个名称为name,显示标签为label,类型为type,初始值为v的控件条目 *parameters: - [i]XmlElement * pParent: 父元素 - [i] const char * name: 控件名 - [i]const char * label: 控件显示标签 - [i]int type: 控件类型 - [i]double v: 初始浮点数值 *return value: 控件条目所对应的xml元素 {{anchor:adduielement}} **XmlElement * addUIElement(XmlElement * pParent, const char * name,const char * label,int type,const char * v = 0)** *function: 该函数为定制GUI的配置文件专用接口,添加一个名称为name,显示标签为label,类型为type,初始值为v的控件条目 *parameters: - [i]XmlElement * pParent: 父元素 - [i] const char * name: 控件名 - [i]const char * label: 控件显示标签 - [i]int type: 控件类型 - [i]const char * v = 0: 初始字符串值 *return value: 控件条目所对应的xml元素 {{anchor:removeelement}} **void removeElement(XmlElement * pElem)** *function: 删除指定xml元素以及它所拥有的所有子元素 *parameters: - [i]XmlElement * pElem: xml元素 *return value: 无 {{anchor:addstringattribute}} **void addStringAttribute(XmlElement * pElement,const char * name,const char * att)** *function: 给xml元素添加属性名为name属性值为att的属性 *parameters: - [i]XmlElement * pElement: xml元素 - [i]const char * name: 属性名 - [i]const char * att: 文本属性值 *return value: 无 {{anchor:adddoubleattribute}} **void addDoubleAttribute(XmlElement * pElement,const char * name,double att)** *function: 给xml元素添加属性名为name属性值为att的属性 *parameters: - [i]XmlElement * pElement: xml元素 - [i]const char * name: 属性名 - [i]double att: 浮点数属性值 *return value: 无 {{anchor:addintattribute}} **void addIntAttribute(XmlElement * pElement,const char * name,int att)** *function: 给xml元素添加属性名为name属性值为att的属性 *parameters: - [i]XmlElement * pElement: xml元素 - [i]const char * name: 属性名 - [i]int att: 整数属性值 *return value: 无