BCB 的对XML的读写

来源:互联网 发布:java就业培训学费 编辑:程序博客网 时间:2024/06/06 03:11

总结:
C++ Builder 出来XML文档总结:
例如处理以下的XML:
<?xml version="1.0" encoding="GB2312"?> //注意这里的编码格式为GB2312,否则有乱码<VTip><Tip><Mode>0</Mode><Time>2003/4/25?08:01:46</Time><Content>洗衣服</Content></Tip><Tip><Mode>1</Mode><Time>2003/4/25?PM 17:30:00</Time><Content>陪女朋友吃饭</Content></Tip></VTip>
首先打开读取文件
XMLDoc->LoadFromFile(WideString(PathString(AppPath)+"Tip.xml"));//XMLDoc是TXMLDocument的名字
XMLDoc->Active=true;
_di_IXMLNode node=XMLDoc->DocumentElement;//DocumentElement属性用来得到根节点
_di_IXMLNodeList nodes=node->ChildNodes;//得到子节点List
for(int n=0;n<nodes->Count;n++)
{TListItem* li=lstMain->Items->Add();
node=nodes->Nodes[n]->ChildNodes->Nodes[0];//得到子节点的子节点,也也就是 VTip//Tip//Mode
int m=String(node->GetText()).ToInt();//得到对应节点的Text内容并转换到Int
li->Caption="";
li->ImageIndex=m+5;
li->SubItems->Add(nodes->Nodes[n]->ChildNodes->Nodes[1]->GetText());
li->SubItems->Add(nodes->Nodes[n]->ChildNodes->Nodes[2]->GetText());//代码同上
}
lstMain->Items->EndUpdate();
写成XML文件:
_di_IXMLNode node=XMLDoc->DocumentElement;
node=node->AddChild(WideString("Tip"));
_di_IXMLNode subnode=node->AddChild(WideString("Mode"));
subnode->SetText(WideString(m));
subnode=node->AddChild(WideString("Time"));
subnode->SetText(WideString(date.DateString()+"?"+time.TimeString()));
subnode=node->AddChild(WideString("Content"));subnode->SetText(WideString(con));

删除 XML
int ind=lstMain->Selected->Index;//ind为要删除的节点号
_di_IXMLNode node=XMLDoc->DocumentElement;
int re=node->ChildNodes->Delete(ind);
if (re!=-1)lstMain->Items->Delete(ind);

写成XML后的格式化  xml的格式