tinyxml2

使用tinyxml2,得知道一些xml基础

xml tutorial--菜鸟

tinyxml2类对象

链接

结构

XMLNode

什么是节点

节点:元素、声明、文本、注释等。

XMLDocument

xml文档(文件)对象。

作用:

加载xml文件,

tinyxml2作用

1,extract xml文件内容

2,创建xml文件内容

链接

案例:

#include 
#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文件:

tinyxml2_第1张图片

函数

外网链接

链接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);

你可能感兴趣的:(c++)