TXMLDocument组件使用了MS XML DOM模型来处理XML的,MSXMLDOM是基于COM的,在VB这样的工具中使用这个COM会很容易,而在C++ Builer中之所以不容易,我想很大程度上是因为我们先入为主的思维,VCL的类设计的非常容易理解和使用,很多方法见名知意,甚至连帮助都不需要查,而作者在使用TXMLDocument的时候就不得不查帮助了,很多方法都不能准确知道它的意思,甚至还有陷阱。
添加一个节点元素:
bool __fastcall Tfrmmain::AddTask(int m,
TDateTime& date,
TDateTime& time,
String con)
{
//TODO: Add your source code here
_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));
return true;
} //以上代码很容易理解,读的时候可以对照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);