怎样取得对应的值,请大大们帮改改
String __fastcall TForm1::getvalue(String strValue)//获得xml中的数据内容
{
_di_IXMLDocument XMLDoc;
XMLDoc = NewXMLDocument();
XMLDoc->LoadFromFile((WideString)"D:\\Request.xml"); //载入xml文件
XMLDoc->Active=true;
_di_IXMLNode node=XMLDoc->DocumentElement;
_di_IXMLNodeList nodes=node->ChildNodes;
for(int n=0;n<nodes->Count;n++)
{
for(int j = 0; j < nodes->Nodes[n]->ChildNodes->Count; j++)
{
String strValue = nodes->Nodes[n]->ChildNodes->Nodes[j]->NodeValue;
}
}
return strValue;
}
xml文件:
<Request>
<SendAppBill>
<CardNo>001</CardNo>
<Name>张三</Name>
<Age>56</Age>
<SendAppBill>
<Request>
这样可以依次获得xml中的数据内容001,张三,56.但是如果想要获得某一个对应的值,比如说<Name>的对应值张三应该怎么办?
[解决办法]
TStringList *list = new TStringList;
for(int n=0;n<nodes->Count;n++)
{
for(int j = 0; j < nodes->Nodes[n]->ChildNodes->Count; j++)
{
String strName = nodes->Nodes[n]->ChildNodes->Nodes[j]->NodeName;
String strValue = nodes->Nodes[n]->ChildNodes->Nodes[j]->NodeValue;
list->Add(strName + "=" + strValue);
}
}
用的时候直接list->Values["Name"] list->Values["Age"] 等等
如果xml有很多块这样的就用Tlist 数组什么的 方法很多