使用tinyxml2,得知道一些xml基础
xml tutorial--菜鸟
tinyxml2类对象
链接
结构
XMLNode
什么是节点
节点:元素、声明、文本、注释等。
XMLDocument
xml文档(文件)对象。
作用:
加载xml文件,
tinyxml2作用
1,extract xml文件内容
2,创建xml文件内容
链接
案例:
#include <iostream>
#include "tinyxml2/tinyxml2.h"
using namespace tinyxml2;
void createXML(){
XMLDocument document;
XMLDeclaration* declaration=document.NewDeclaration("xml version='1.0' encoding='UTF-8'");
XMLComment* comment=document.NewComment("This is a comment");
XMLUnknown* unknown=document.NewUnknown("unknown type");
XMLElement* person=document.NewElement("person");
person->SetAttribute("name","laowang");
person->SetAttribute("age","22");
person->SetAttribute("gender","man");
XMLElement* addr=document.NewElement("address");
addr->SetAttribute("name","guangnan");
addr->SetAttribute("postion","sourthwest");
XMLElement* enterprise=document.NewElement("enterprise");
enterprise->SetAttribute("first","stuudent");
enterprise->SetAttribute("second","xiaobai");
enterprise->SetAttribute("third","peitian");
XMLElement* success=document.NewElement("success");
success->SetAttribute("stage","highest");
XMLText* text=document.NewText("baby to you");
success->InsertEndChild(text);
enterprise->InsertEndChild(success);
person->InsertEndChild(addr);
person->InsertEndChild(enterprise);
document.InsertEndChild(declaration);
document.InsertEndChild(comment);
document.InsertEndChild(unknown);
document.InsertEndChild(person);
document.SaveFile("person.xml");
}
int main(){
createXML();
return 0;
}
生成的xml文件:
函数
外网链接
链接1
链接2
链接3
new类型的函数
比如newElement()
XMLNode * InsertFirstChild(XMLNode *addThis)
XMLNode * InsertAfterChild(XMLNode *afterThis, XMLNode *addThis)
XMLNode * InsertEndChild(XMLNode *addThis)
void DeleteChild(XMLNode *node)
void DeleteChildren()
SetText()
重载函数,参数类型可以多种。
设置text的。
所以说,一个元素的text可以建立XMLText对象,然后insert;也可以用这个函数直接生成。
SetValue()
设置元素名称
获取xml文档的根节点
XMLNode * pRoot = xmlDoc.FirstChild();
if (pRoot == nullptr) return XML_ERROR_FILE_READ_ERROR;
获取元素的子元素
XMLElement * pElement = pRoot->FirstChildElement("IntValue");
if (pElement == nullptr) return XML_ERROR_PARSING_ELEMENT;
确保子元素名不同。
查询元素的text的类型,并且获取
QueryXXXText()
int iOutInt;
eResult = pElement->QueryIntText(&iOutInt);
XMLCheckResult(eResult);