用TXMLDocument
存:
MsgXML->Active = false;
MsgXML->Active = true;
_di_IXMLNode ChildNode,ValueNode;
MsgXML->XML->Clear();
_di_IXMLNode TopNode = MsgXML->ChildNodes->FindNode("saveMessage"); //顶级节点
if(TopNode == NULL)
TopNode = MsgXML->AddChild("saveMessage");
for(int i=0;i<100;i++)
{
ChildNode=TopNode->AddChild("Message");
ValueNode=ChildNode->AddChild("Flag");
ValueNode->Text=String(saveMsg[i].Flag);
ValueNode=ChildNode->AddChild("UsrID");
ValueNode->Text=String(saveMsg[i].UsrID);
ValueNode=ChildNode->AddChild("UsrName");
ValueNode->Text=String(saveMsg[i].UsrName);
ValueNode=ChildNode->AddChild("UsrIP");
ValueNode->Text=String(saveMsg[i].UsrIP);
ValueNode=ChildNode->AddChild("Title");
ValueNode->Text=String(saveMsg[i].Title);
ValueNode=ChildNode->AddChild("Content");
ValueNode->Text=String(saveMsg[i].Content);
ValueNode=ChildNode->AddChild("Time");
ValueNode->Text=String(saveMsg[i].Time);
}
MsgXML->SaveToFile(ExtractFilePath(Application->ExeName)+USERID+".xml");
MsgXML->Active = false;
取:
IXMLNode *node;
IXMLNodeList *parentlist=NULL,*childlist=NULL;
int i,j;
try
{
node=MainForm->MsgXML->ChildNodes->FindNode("allMessage"); //顶级节点
if(node->GetNodeType()==ntElement) //一级节点
{
parentlist=node->ChildNodes; //一级节点列表
if(parentlist->Count == 0)
return;
TListItem *pItem;
for(i=0;i<parentlist->Count;i++)
{
if(parentlist->Nodes[i]->GetNodeType()==ntElement) //二级节点
{
childlist=parentlist->Nodes[i]->ChildNodes; //二级节点列表
if(String(childlist->Nodes[1]->Text) != CName)
continue;
pItem = History->Items->Add();
pItem->Caption = "标题:"+String(childlist->Nodes[2]->Text)+" ("+String(childlist->Nodes[0]->Text)+")";
pItem = History->Items->Add();
pItem->Caption = " 内容:"+String(childlist->Nodes[3]->Text);
}
}
}
}
catch(...)
{
;
}