首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

读取XML文件遇到的有关问题

2013-01-04 
读取XML文件遇到的问题,求助void __fastcall TForm1::FormCreate(TObject *Sender){void __fastcall showl

读取XML文件遇到的问题,求助
void __fastcall TForm1::FormCreate(TObject *Sender)
{
void __fastcall showlist(_di_IXMLNode node,TTreeNode * ptr);
_di_IXMLNode node;
_di_IXMLNodeList nodes;
int num,i;
XMLDocument1->LoadFromFile(".\\test.xml"); //载入指定的xml文件
XMLDocument1->Active=true;
node=XMLDocument1->DocumentElement;  //文档元素的根节点
nodes=XMLDocument1->ChildNodes;     //指定nodes为文档解析数的跟节点下的子节点列表对象
num=nodes->Count;      //根节点下子节点对象数目
TreeView1->Items->Clear();
if(num>0) //文档根节点下子节点数大于0时,进行处理
{
TreeView1->Items->Insert(TreeView1->TopItem,node->GetNodeName()); //跟节点插入到树状列表中
showlist(nodes,TreeView1->TopItem); //遍历其他子节点
}
}
//---------------------------------------
void __fastcall TForm1::showlist(_di_IXMLNode node,TTreeNode * ptr)
{
TTreeNode * temp;
//TTreeView *TreeView1;
int i;
//_di_IXMLNode node;
_di_IXMLNodeList nodes;
i=node->ChildNodes->Count;
if(i>0)
for(int j=0;j<i;j++)
{//遍历显示当前节点的子节点
temp=TreeView1->Items->AddChild(ptr,node->ChildNodes->Nodes[j]->GetNodeName());
if(node->ChildNodes->Nodes[j]->ChildNodes->Count>0)
//如果当前节点存在子节点,继续遍历显示
showlist(node->ChildNodes->Nodes[j],temp);
}
}
[Linker Error]Unresolved external '__fastcall      showlist(System::DelphiInterface<Xmlintf::IXMLNode>,Comctrls::TTreeNode *)'referenced from
C:\USERS\...\UNIT1.OBJ
用TXMLDocument控件,在TTreeview上显示XML,有经验的大大们看看这个错误怎么回事?
[解决办法]

void __fastcall showlist(_di_IXMLNode node,TTreeNode * ptr);
这一行代码剪切,放到头文件Form1类的private段内,如:

private:
    void __fastcall showlist(_di_IXMLNode node, TTreeNode *ptr);

注意头文件中包含必要的头文件,否则会报会声明的类型。

热点排行