• TinyXml入门


    DOM模型即文档对象模型,是将整个文档分成多个元素(如书、章、节、段等),并利用树型结构表示这些元素之间的顺序关系以及嵌套包含关系(理解html语言的读者会很容易理解这种树状模型)。               
        如下是一个XML片段:
        <Persons>
            <Person ID="1">
                <name>
    周星星</name>
                <age>20</age>
            </Person>
            <Person ID="2">
                <name>
    白晶晶</name>
                <age>18</age>
            </Person>
        </Persons>
        在TinyXML中,根据XML的各种元素来定义了一些类:
            TiXmlBase:整个TinyXML模型的基类。
                    TiXmlAttribute:对应于XML中的元素的属性。
                    TiXmlNode:对应于DOM结构中的节点。
                            TiXmlComment:对应于XML中的注释。
                            TiXmlDeclaration:对应于XML中的申明部分,即<?versiong="1.0" ?>。
                            TiXmlDocument:对应于XML的整个文档。
                            TiXmlElement:对应于XML的元素。
                            TiXmlText:对应于XML的文字部分。
                            TiXmlUnknown:对应于XML的未知部分。 
            TiXmlHandler:定义了针对XML的一些操作。

    生成XML内容

       //创建一个XML的文档对象。

         TiXmlDocument *myDocument = new TiXmlDocument();

         //创建一个根元素并连接。

         TiXmlElement *RootElement = new TiXmlElement("Persons");

         myDocument->LinkEndChild(RootElement);

         //创建一个Person元素并连接。

         TiXmlElement *PersonElement = new TiXmlElement("Person");

         RootElement->LinkEndChild(PersonElement);

         //设置Person元素的属性。

         PersonElement->SetAttribute("ID", "1");

         //创建name元素、age元素并连接。

         TiXmlElement *NameElement = new TiXmlElement("name");

         TiXmlElement *AgeElement = new TiXmlElement("age");

         PersonElement->LinkEndChild(NameElement);

         PersonElement->LinkEndChild(AgeElement);

         //设置name元素和age元素的内容并连接。

         TiXmlText *NameContent = new TiXmlText("周星星");

         TiXmlText *AgeContent = new TiXmlText("20");

         NameElement->LinkEndChild(NameContent);

         AgeElement->LinkEndChild(AgeContent);

         //保存到文件

         myDocument->SaveFile("C:\\a.xml");

        这样,便创建了一个如下的xml文件:

        <Persons>

            <Person ID="1">

                <name>周星星</name>

                <age>20</age>

            </Person>

    </Persons>

    把6个文件复制到项目中 tinystr.h tinyxml.h tinystr.cpp tinyxml.cpp tinyxmlerror.cpp tinyxmlparser.cpp 

    将CPP文件的头部加上 #include "stdafx.h" , 要使用的地方 #include "tinyxml.h"

    注:#include "stdafx.h" 前所有的语句都会自动忽略。防止出现  “意外的#endif”

    读取XML(假设我们的Xml文档中的内容与上面的Xml内容一样)

        //创建一个XML的文档对象。

         CString strMsg;

         TiXmlDocument *myDocument = new TiXmlDocument("C:\\a.xml");

         myDocument->LoadFile();

     

         //获得根元素,即Persons。

         TiXmlElement *RootElement = myDocument->RootElement();

         //输出根元素名称,即输出Persons。

         strMsg.Format("%s",RootElement->Value());

         WriteLog(strMsg); 

         //获得第一个Person节点。

         TiXmlElement *FirstPerson = RootElement->FirstChildElement();

         //获得第一个Person的name节点和age节点和ID属性。

         TiXmlElement *NameElement = FirstPerson->FirstChildElement();

         TiXmlElement *AgeElement = NameElement->NextSiblingElement();

         TiXmlAttribute *IDAttribute = FirstPerson->FirstAttribute();

         //输出第一个Person的name内容,即周星星;age内容,即;ID属性,即。

         strMsg.Format("name:%s,age:%s,ID:%s",NameElement->FirstChild()->Value(),AgeElement->FirstChild()->Value(),IDAttribute->Value());

         WriteLog(strMsg); 

  • 相关阅读:
    移动硬盘和u盘的区别
    U盘文件系统格式
    WARN: Establishing SSL connection
    数据库基本操作命令
    PCM EQ DRC 音频处理
    那些年、那些歌、那些事
    编译与链接
    Flash芯片你都认识吗?
    ACM暑假集训第三周小结
    H
  • 原文地址:https://www.cnblogs.com/elesos/p/2837516.html
Copyright © 2020-2023  润新知