hild函数允许你在指定的节点位置前后插入节点。
TiXmlNodeReplaceChildTiXmlNodereplaceThisconstTiXmlNodeampwithThisReplaceChild函数用于替换指定的节点。
boolRemoveChildTiXmlNoderemoveThisRemoveChild函数让你删除指定的节点。
voidClearClear函数会删除本节点的所有子节点包括子节点包含的从子节点但不会修改本节点。
同级节点ltelementattributequotthisaattribute这是一个属性quotintquot1quotfloatquot3.14quotgtltsubelement1gtThisatext这是一个文本lt/subelement1gtltsubelement2/gtltsubelement3/gtltsubelement4/gtlt/elementgt在上面的xml代码中subelement1、subelement2、subelement3、subelement4都属于同级节点我们也提供了相关的函数用于在这些同级节点中遍历。
TiXmlNodePreviousSiblingTiXmlNodePreviousSiblingconststd::stringamp_value可以根据当前的节点返回上一个节点的指针。
带参数名的那个函数表示返回上一个名为_value的节点。
当然你也可以根据当前的节点返回下一个节点的指针。
带参数名的那个函数表示返回下一个名为_value的节点。
TiXmlNodeNextSiblingTiXmlNodeNextSiblingconststd::stringamp_value遍历元素元素是一种特殊的节点以’lt’为开始字符后接元素名称。
函数NextSiblingElement用于返回下一个同级元素而忽略其它类型的节点。
它们的函数声明如下TiXmlElementNextSiblingElementTiXmlElementNextSiblingElementconststd::stringamp_value带参数名的那个函数表示返回下一个名为_value的同级元素。
本类也提供了相关的函数让你返回第一个子元素。
TiXmlElementFirstChildElementTiXmlElementFirstChildElementconststd::stringamp_value带参数名的那个函数表示返回下一个名为_value的子元素。
元素属性属性一般保存在元素中它们为使用“”号连接的两个字符串左边的表示属性名等号右边的表示属性值通常使用字符串、整数和浮点数等数据类型表示。
例如pi3.14。
你可以通过如下的函数返回属性值。
conststd::stringAttributeconststd::stringampnameconstconststd::stringAttributeconststd::stringampnameinticonstconststd::stringAttributeconststd::stringampnamedoubledconst在上面3个函数中第一个函数使用字符串保存返回的属性值第二个函数把属性值转换为整数然后返回第三个函数把属性值转换为浮点数然后返回。
不过第二、三个函数都会以字符串的形式记录属性值并作为函数的返回值返回。
另外你也可以使用模板函数templatelttypenameTgtintQueryValueAttributeconststd::stringampnameToutValueconst来返回特点的属性值它会根据你传入的参数自动选择合适数据类型。
另外本类也提供了如下三个函数让你设置属性参数的类型和返回函数类似。
voidSetAttributeconststd::stringampnameconststd::stringamp_valuevoidSetAttributeconststd::stringampnameint_valuevoidSetDoubleAttributeconstcharnamedoublevalueFirstAttribute和LastAttribute可以让你返回第一个和最后一个属性它们的函数声明如下TiXmlAttributeFirstAttributeTiXmlAttributeLastAttributeRemoveAttribute函数可以让你删除指定名称的属性它的函数声明如下voidRemoveAttributeconststd::stringampname元素函数总结ValueStr//返回元素名称SetValue//设置元素名称Parent//返回父节点对象FirstChild//返回第一个子节点LastChild//返回最后一个子节点IterateChildren//返回下一个子节点InsertEndChild//在最后一个子节点后插入子节点InsertBeforeChild//在指定的子节点前插入子节点InsertAfterChild//在指定的子节点后插入子节点ReplaceChild//替换指定的子节点RemoveChild//删除指定的子节点Clear//删除所有的子节点PreviousSibling//返回同级中前一个节点NextSibling//返回同级中后一个节点NextSiblingElement//返回同级中后一个元素FirstChildElement//返回第一个子元素节点Attribute//返回元素中的属性值QueryValueAttribute//返回元素中的属性值SetAttribute//设置元素中的属性值FirstAttribute//返回元素中第一个属性对象LastAttribute//返回元素中最后一个属性对象RemoveAttribute//删除元素中指定的属性对象属性类属性为名称quot值quot对元素可以具有属性值但名称必须唯一。
你可以通过conststd::stringampNameTStrconst返回属性名称也可以通过下面三个函数返回属性值conststd::stringampValueStrconstintIntValueconstdoubleDoubleValueconst当然你也可以设置属性值它们的函数声明如下voidSetNameconststd::stringamp_namevoidSetIntValueint_valuevoidSetDoubleValuedouble_valuevoidSetValueconststd::stringamp_value以上函数与元素类中的相关函数类似这里不重复介绍了。
在元素属性中通常具有许多属性你可以通过Next函数返回下一个属性对象的指针也可以通过Previous函数获得上一个属性对象的指针。
它们的函数声明如下TiXmlAttributeNextTiXmlAttributePreviousTinyXml介绍TinyXml是一个基于DOM模型的、非验证的轻量级C解释器一.XML解析模型:目前XML的解析主要有两大模型SAX和DOM。
SAX是基于事件的其基本工作流程是分析XML文档当发现了一个新的元素时产生一个对应事件并调用相应的用户处理函数。
这种方式占用内存少速度快但用户程序相应得会比较复杂。
DOM文档对象模型则是在分析时一次性的将整个XML文档进行分析并在内存中形成对应的树结构同时向用户提供一系列的接口来访问和编辑该树结构。
这种方式占用内存大速度往往慢于SAX但可以给用户提供一个面向对象的访问接口对用户更为友好。
另据说一些同时提供了SAX和DOM接口的库是在底层先实现SAX再在SAX的基础上实现DOM对于一个特定的XML文档而言其正确性分为两个层次。
首先是其格式应该符合XML的基本格式要求比如第一行要有声明标签的嵌套层次必须前后一致等等符合这些要求的文件就是一个合格的XML文件称作well-formatted。
其次一个XML文档因其内容的不同还必须在语义上符合相应的标准这些标准由相应的DTD文件或者Schema文件来定义符合了这些定义要求的XML文件称作valid。
因此解析器也分为两种一种是验证的即会跟据XML文件中的声明用相应的DTD文件对XML文件进行校验检查它是否满足DTD文件的要求。
另一种是忽略DTD文件只要基本格式正确就可以进行解析。
就我所知验证的解析器通常都是比较重量级的。
TinyXml不支持验证但是体积很小用在解析格式较为简单的XML文件比如配置文件时特别的合适。
二.TinyXml介绍:TinyXmlOnlineDocumentationTinyXmlClassHierarchyThisinheritancelistissortedroughlybutnotcompletelyalphabetically:TiXmlBaseTiXmlAttributeTiXmlNodeTiXmlCommentTiXmlDeclarationTiXmlDocumentTiXmlElementTiXmlTextTiXmlUnknownTiXmlHandleTiXmlVisitorTiXmlPrinterTinyXml实现的时DOM访问模型因此提供了一系列的类对应XML文件中的各个节点。
主要类间的关系如下图所示TiXmlBase其他类的基类是个抽象类TiXmlNode表示一个节点包含节点的一般方法如访问自节点、兄弟节点、编辑自身、编辑子节电TiXmlDocument表示整个XML文档不对应其中某个特定的节点。
TiXmlElement表示元素节点
上一篇:
【精品文献】朝龙学院、朝龙学院、威海企业职能培训、威海人才培训、易语言学习
下一篇:
初涉讲台感悟