读取xml节点

#include "tinyxml.h"
#include "tinystr.h"
char * set_path(char * my_path)
{
 wchar_t src[100];
 GetModuleFileName(NULL,src,_MAX_PATH);

 char * des = NULL;

 int len= WideCharToMultiByte(CP_ACP,0,src,wcslen(src),NULL,0,NULL,NULL);

 des=(char *)malloc(sizeof(char) * (len + 1));

 WideCharToMultiByte(CP_ACP,0,src,wcslen(src),des,len,NULL,NULL);

 des[len] = '\0';
 int i=0;
 while (i<4)
 {
  char *p=strrchr(des,'\\');
  if (p)
  {
   *p='\0';
  }
  i++;
 }
 strcat(des,"\\Platform\\replace.xml");
 strcpy(my_path,des);
 return des;
}

string  SelectSingleNode(char* xmlpath,string nodeName)
{
 //加载一个XML的文档对象。
 string str="fail";
 FILE *p=NULL;
 p=fopen(xmlpath,"r");
 if(p==NULL||xmlpath==NULL)
 {
  //  MessageBox(_T("提示"),_T("不能读取replace.xml文件"));
  return str;
 }
 fclose(p);
 TiXmlDocument *myDocument = new TiXmlDocument(xmlpath);

 myDocument->LoadFile();
 //获得根元素,
 TiXmlElement *RootElement = myDocument->RootElement();

 string csTemp = RootElement->Value();//csTemp = "x:REPLACEMENT"

 TiXmlElement *FirstPerson = RootElement->FirstChildElement();
 TiXmlElement *REPLACE=NULL;
 csTemp = FirstPerson->Value();     //csTemp = "class"
 while (FirstPerson)
 {
  FirstPerson = FirstPerson->FirstChildElement();
  if (FirstPerson)
  {
   string csTempl = FirstPerson->Value();    //csTemp = "REPLACE"
   if (csTempl=="REPLACE")
   {
    REPLACE=FirstPerson;
   }
   csTemp = FirstPerson->FirstChild()->Value();
   if (csTemp==nodeName)
   {
    FirstPerson=FirstPerson->NextSiblingElement();
    csTemp = FirstPerson->FirstChild()->Value();
    return  csTemp;
   }
   csTemp = FirstPerson->FirstChild()->Value();
  } 
  else
  {
   FirstPerson=REPLACE;
   FirstPerson=FirstPerson->NextSiblingElement();
   REPLACE=FirstPerson;
   if (NULL==FirstPerson)
   {
    return str;
   }          
  }     
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值