遍历XML文件,做过的看过来!

jone7319 2009-09-09 10:47:56
大家帮我看一下,这些代码问题在哪,真搞不定了。(主要功能是从飞信主站取登录配置XML文件,然后遍历进行解释)

TStringList *Request = new TStringList();
TXMLDocument *XMLReader=new TXMLDocument("");
TStringStream* stream=new TStringStream("");
Request->Text= "<config><user mobile-no=\"13877124588\" /><client type=\"PC\" version=\"3.3.0370\" platform=\"W5.1\" /><servers version=\"0\" /><service-no version=\"37\" /></config>";
IdHTTP1->Post("http://nav.fetion.com.cn/nav/getsystemconfig.aspx", Request,stream);
XMLReader->LoadFromStream(stream);//能正确取到xml文件
XMLReader->Active = True;
ExploreNode(XMLReader->Node);//遍历xml所有节点,报内存错,
}

}
//---------------------------------------------------------------------------
void __fastcall TForm1:: ExploreNode(IXMLNode *aNode)
{
String FSIPCServer,FSIPCPort,FSSISignInURL,FGetUriURL;
if(aNode->NodeName ==(WideString) "sipc-proxy")
if(aNode->IsTextElement)
{
if(!aNode->Text.Pos(":"))
FSIPCServer=aNode->Text;
else
{
FSIPCServer =aNode->Text.SubString(1,aNode->Text.Pos(":")-1);
FSIPCPort = StrToIntDef(aNode->Text.SubString(aNode->Text.Pos(":")+1,aNode->Text.Length()),9090);
}
}

if(aNode->NodeName==(WideString)"ssi-app-sign-in")
if(aNode->IsTextElement)
FSSISignInURL= aNode->Text;

if(aNode->NodeName==(WideString)"get-uri")
if(aNode->IsTextElement)
FGetUriURL= aNode->Text;

for(int i=0;i<aNode->ChildNodes->Count;i++)
ExploreNode(aNode->ChildNodes->Nodes[i]);

}
...全文
205 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dd_zhouqian 2009-09-14
  • 打赏
  • 举报
回复
把xml贴出来,看看
error1982 2009-09-14
  • 打赏
  • 举报
回复
纠正!!

TXMLDocument *XMLReader=new TXMLDocument("");

改成 _di_IXMLDocument XMLReader = NewXMLDocument();试试!我刚解决。
error1982 2009-09-14
  • 打赏
  • 举报
回复
TXMLDocument *XMLReader=new TXMLDocument("");

改成 _di_IXMLDocument = NewXMLDocument();试试!我刚解决。
Greg_han 2009-09-14
  • 打赏
  • 举报
回复
看啊可能
jone7319 2009-09-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wewaa 的回复:]
C/C++ codefor(int i=0;i<aNode->ChildNodes->Count;i++)
ExploreNode(aNode->ChildNodes->Nodes[i]);//改为下面试试for ( I=0 ;I< aNode->ChildNodes->Count ;I++ )
{

ExploreNode(aNode->ChildNodes¡­
[/Quote]
还是一样啊
laowang2 2009-09-12
  • 打赏
  • 举报
回复
for(int i=0;i<aNode->ChildNodes->Count;i++)
ExploreNode(aNode->ChildNodes->Nodes[i]);
//改为下面试试

for ( I = 0 ;I< aNode->ChildNodes->Count ;I++ )
{

ExploreNode(aNode->ChildNodes->Get(I));
}
jone7319 2009-09-11
  • 打赏
  • 举报
回复
哪位大侠来看一下,怎么做才行?
jone7319 2009-09-09
  • 打赏
  • 举报
回复
帮看一下如何解决

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧