一个读取和配置XML文件的例子

1、配置文件

<? xml version="1.0" encoding="UTF-8" ?>
- < configs >
- < HelpFile >
  < name > hdlcnet.chm </ name >
  </ HelpFile >
- < OrderTree >
  < state > 1 </ state >
  </ OrderTree >
- < Other >
  < routetestperiod > 60 </ routetestperiod >
  < resetwaittime > 6 </ resetwaittime >
  </ Other >
- < DataBase >
  < type > 0 </ type >
  < dsn > hdlcnet </ dsn >
  < serverip > 192.168.0.80 </ serverip >
  < dbservername > SQLSERVER2005 </ dbservername >
  < dbname > hdlcnet </ dbname >
  < usrname > admin </ usrname >
  < usrpwd />
  </ DataBase >
- < Proxy >
  < uiport > 12345 </ uiport >
  < deviceport > 1998 </ deviceport >
  < almsyncperiod > 300 </ almsyncperiod >
  < heartbeatperiod > 30 </ heartbeatperiod >
  </ Proxy >
  </ configs >


2//读取某一个元素的文本
// TODO: Add your control notification handler code here
    //创建一个XML的文档对象。
    TiXmlDocument *myDocument = new TiXmlDocument("config.xml");
    myDocument->LoadFile();
    //获得根元素,即configs。
    TiXmlElement *RootElement = myDocument->RootElement();
    //输出根元素名称,即输出configs。
    char * pszRootName = (char *)RootElement->Value();
    CString strRootName = pszRootName;
    //
    TiXmlElement * element = RootElement->FirstChildElement("HelpFile")->FirstChildElement("name");
    char * pszHelpName = (char *)element->GetText();
    CString strHelpName = pszHelpName;
   
    element = RootElement->FirstChildElement("DataBase")->FirstChildElement("dbservername");
    char * pszDbServerName = (char *)element->GetText();
    CString strDbServerName = pszDbServerName;

    delete myDocument;

3、修改某一元素文本
TiXmlDocument *myDocument = new TiXmlDocument("config.xml");
    myDocument->LoadFile();
   
    TiXmlNode  * node = myDocument->FirstChild("configs")->FirstChild("HelpFile")->FirstChild("name");
    char * pszNode = (char *)node->Value();
    if(!node)
    {
        ASSERT(FALSE);
        return;
    }
   
    TiXmlElement * element = node->ToElement();
    char * pszElement = (char *)element->GetText();


    if(!element)
    {
        ASSERT(FALSE);
        return;
    }
    //先清除文本
    node->Clear();
    TiXmlText * HelpFileContent = new TiXmlText("hdlcnet.chm");
    element->LinkEndChild(HelpFileContent);

    //element->ReplaceChild(node, HelpFileContent);

    myDocument->SaveFile("config.xml");
 
    //
    delete myDocument;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值