tinyxml 的加载和保存

<?xml version="1.0" encoding="GB2312" standalone="yes" ?>
<InstallItemS>
    <Item ZqName="渤海证券" JyName="合一版网上交易" Runexe="e:\newdmtz_r11\release\cfzzd\Data\\wtjy\BHZQ77/渤海证券/HYBWSJY/winwt.exe" sversion="1.0" />
</InstallItemS>


//从字符串

TiXmlDocument doc;
if(doc.Parse(strWeather.c_str(),0,TIXML_DEFAULT_ENCODING)) return FALSE;
TiXmlElement *pRoot = doc.RootElement();//ArrayOfString
TiXmlElement *pString = pRoot->FirstChildElement();//string

//从文件

BOOL CInstalledPanel::LoadFromXml(LPCTSTR xmlPath)

{
m_strXmlPath = xmlPath;
try
{
TiXmlDocument Tdoc;
C22 Obj(xmlPath);
char *szXml = Obj;
if(!Tdoc.LoadFile(szXml)) return FALSE;


TiXmlElement *pRoot = Tdoc.RootElement();//InstallItemS
if(pRoot)
{
TiXmlElement *pItem = pRoot->FirstChildElement("Item");


while(pItem)
{
const char *szZqName = pItem->Attribute("ZqName");
const char *szJYName = pItem->Attribute("JyName");
const char *szRunexe = pItem->Attribute("Runexe");
const char *szVersion = pItem->Attribute("sversion");
{
C22 objZQ(szZqName);
C22 objJY(szJYName);
C22 objRunexe(szRunexe);
C22 objVersion(szVersion);
CInstalledItem *pInstallItem = new CInstalledItem(objZQ,objJY,objRunexe,objVersion);
AddItems_NoCalc(pInstallItem);
CString strName = (TCHAR *)objZQ;
if(m_pBindPanel)
{
CPublisherPanel *pPublis = (CPublisherPanel *)m_pBindPanel;
CPublishedItem *publisItem = (CPublishedItem *)pPublis->GetPublushedItem(strName);
if(publisItem)
{
strName = strName.Trim();
m_vMapTitleItem[strName] = publisItem;
if(publisItem->GetVersion() != pInstallItem->GetVersion())
{
//用于更新列表
m_vUpdateItem[publisItem] = pInstallItem;
}
publisItem->SetSelect(TRUE);
}
}
}
pItem = pItem->NextSiblingElement("Item");
}
}
}
catch(...)
{
return FALSE;
}
return TRUE;


}


BOOL CInstalledPanel::SaveToXml()
{
try
{
TiXmlDocument Tdoc;
C22 Obj(m_strXmlPath);
char *szXml = Obj;
if(Tdoc.LoadFile(szXml))
{
Tdoc.Clear();
}


TiXmlDeclaration *pDeclaration = new TiXmlDeclaration("1.0","GB2312","yes");
Tdoc.LinkEndChild(pDeclaration);
TiXmlElement *pInstallItemS = new TiXmlElement("InstallItemS");
Tdoc.LinkEndChild(pInstallItemS);

for (int i = 0;i < m_vItem.size();++i)
{
TiXmlElement *pItem = new TiXmlElement("Item");
if(m_vItem[i])
{
CInstalledItem *pInstall = (CInstalledItem *)m_vItem[i];
C22 ObjZqName(pInstall->GetZQName());
C22 ObjJyName(pInstall->GetJYName());
C22 ObjRunexe(pInstall->GetRunexe());
C22 ObjVersion(pInstall->GetVersion());
pItem->SetAttribute("ZqName",ObjZqName);
pItem->SetAttribute("JyName",ObjJyName);
pItem->SetAttribute("Runexe",ObjRunexe);
pItem->SetAttribute("sversion",ObjVersion);
pInstallItemS->LinkEndChild(pItem);
}
}
Tdoc.SaveFile();    
}
catch(...)
{
return FALSE;
}
return TRUE;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值