博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TinyXML2 学习
阅读量:4184 次
发布时间:2019-05-26

本文共 2470 字,大约阅读时间需要 8 分钟。

http://blog.csdn.net/cen616899547/article/details/9187687

tinyxml2::XMLDocument objXMLRoot;

    XMLElement* pElemDeviceInfo = objXMLRoot.NewElement("device_info");
    objXMLRoot.InsertEndChild(pElemDeviceInfo);
    INSERT_XML_PARAM(pElemDeviceInfo, "PID", m_strPID.c_str());
    INSERT_XML_PARAM(pElemDeviceInfo, "ProduceDate", m_strProduceDate.c_str());
    INSERT_XML_PARAM(pElemDeviceInfo, "SN", m_strSN.c_str());
    INSERT_XML_PARAM(pElemDeviceInfo, "IRoIP", m_strIRoIPEnable.c_str());
    INSERT_XML_PARAM(pElemDeviceInfo, "SoIP", m_strSoIPEnable.c_str());
    INSERT_XML_PARAM(pElemDeviceInfo, "VISelect", m_strVISelect.c_str());
    INSERT_XML_PARAM(pElemDeviceInfo, "AISelect", m_strAISelect.c_str());
    INSERT_XML_PARAM(pElemDeviceInfo, "VI", m_strVI.c_str());
    INSERT_XML_PARAM(pElemDeviceInfo, "AI", m_strAI.c_str());
    INSERT_XML_PARAM(pElemDeviceInfo, "VITiming", m_strVITiming.c_str());
    INSERT_XML_PARAM(pElemDeviceInfo, "AIInfo", m_strAIInfo.c_str());
    INSERT_XML_PARAM(pElemDeviceInfo, "ENCBig", m_strVENCBig.c_str());
    INSERT_XML_PARAM(pElemDeviceInfo, "ENCSmall", m_strVENCSmall.c_str());
    INSERT_XML_PARAM(pElemDeviceInfo, "HDMIEDID", m_strLoopHDMIEDID.c_str());
    INSERT_XML_PARAM(pElemDeviceInfo, "VGAEDID", m_strLoopVGAEDID.c_str());
    INSERT_XML_PARAM(pElemDeviceInfo, "MasterLoop", m_strMasterLoop.c_str());
    INSERT_XML_PARAM(pElemDeviceInfo, "ForceOutput", m_strForceOutput.c_str());
    XMLPrinter objStreamer;
    objXMLRoot.Print( &objStreamer );
    printf( "%s", objStreamer.CStr() );
    std::string strDeviceInfo = objStreamer.CStr();
#define INSERT_XML_PARAM(xml_node, name, value)     \
    do { XMLElement* pElemLabel = objXMLRoot.NewElement("label");\
        xml_node->InsertEndChild(pElemLabel);\
        pElemLabel->SetAttribute("name", name);\
        XMLText *pText = objXMLRoot.NewText(value);\
        pElemLabel->InsertFirstChild(pText);\
    } while (0);
结果:
<device_info>
    <label name="PID">MX153-96F875E58332</label>
    <label name="ProduceDate">20140228</label>
    <label name="SN">1</label>
    <label name="IRoIP">enable</label>
    <label name="SoIP">enable</label>
    <label name="VISelect">unknown</label>
    <label name="AISelect">unknown</label>
    <label name="VI">unknown</label>
    <label name="AI">unknown</label>
    <label name="VITiming">unknown</label>
    <label name="AIInfo">unknown</label>
    <label name="ENCBig">unknown</label>
    <label name="ENCSmall">unknown</label>
    <label name="HDMIEDID">not attached</label>
    <label name="VGAEDID">unknown</label>
    <label name="MasterLoop">unknown</label>
    <label name="ForceOutput">unknown</label>
</device_info>

你可能感兴趣的文章
《tiny6410裸机程序》第九章:tiny6410按键控制蜂鸣器程序
查看>>
有关free()函数的一个问题
查看>>
《Android系统学习》之bug定位
查看>>
《Linux内核编程》第七章:USB CORE与USB键鼠驱动
查看>>
《Android系统学习》之JAVA与C混合编程——JNI
查看>>
《C预处理》之#ifndef
查看>>
《Linux内核编程》第十三章:Linux对进程内存的二级页式管理
查看>>
ARM协处理器
查看>>
《miniOS分析》前言
查看>>
《Linux内核编程》第十四章:Linux驱动基础
查看>>
Linux平台下ARM-Linux交叉编译工具链
查看>>
Window平台下ADS自带ARMCC编译工具链
查看>>
micro2440/tiny6410使用JLINK直接烧录nand flash
查看>>
C编译器、连接器与可执行机器码文件
查看>>
android linker 浅析
查看>>
802.11 traffic id
查看>>
Android系统wifi分析-手动连接过程
查看>>
设置IP别名Shell脚本
查看>>
Source Insight 宏-单行注释
查看>>
levelDB源码分析-Arena
查看>>