STM32 /mbedOS使用的C++小型XML库-TinyXML2

XML 结构化文档的处理是比价麻烦的,为在cortex-M CPU 上处理XML,我选择了tinyxml2 库,并且在Arm mbed OS 上实现。相对比较简单,在这里分享出来。

下载

代码下载地址https://github.com/leethomason/tinyxml2

文档地址:http://leethomason.github.io/tinyxml2/

下载解压后,在tinyxml2-master 找出tinyxml2.cpp 和tinyxml2.h 两个文件。这个有用的文件

mbed OS  上的测试

新建一个新项目,建立一个新文件夹tinyxml2,上传tinyxml2.cpp 和tinyxml2.h 两个文件到该文件夹中。

编写测试程序



#include "mbed.h"
#include "tinyxml2/tinyxml2.h"
#include <cerrno>
#include <cstdlib>
#include <cstring>
using namespace tinyxml2;
using namespace std;
int main(){
    // Test: Programmatic DOM
        // Build:
        //      <element>
        //          <!--comment-->
        //          <sub attrib="0" />
        //          <sub attrib="1" />
        //          <sub attrib="2" >& Text!</sub>
        //      <element>

        XMLDocument* doc = new XMLDocument();
        XMLNode* element = doc->InsertEndChild( doc->NewElement( "element" ) );

        XMLElement* sub[3] = { doc->NewElement( "sub" ), doc->NewElement( "sub" ), doc->NewElement( "sub" ) };
        for( int i=0; i<3; ++i ) {
            sub[i]->SetAttribute( "attrib", i );
        }
        

        const int dummyInitialValue = 1000;
        int dummyValue = dummyInitialValue;

        XMLNode* comment = element->InsertFirstChild( doc->NewComment( "comment" ) );
        comment->SetUserData(&dummyValue);
        element->InsertAfterChild( comment, sub[0] );
        element->InsertAfterChild( sub[0], sub[1] );
        element->InsertEndChild( sub[2] );
        sub[2]->InsertFirstChild( doc->NewText( "Text!" ));
        doc->Print();
}

上述程序已经在最新mbed OS6 下编译运行,请放心采纳.

猜你喜欢

转载自blog.csdn.net/yaojiawan/article/details/107755302
今日推荐