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

怎么取得对应的值,请大大们帮改改

2013-01-08 
怎样取得对应的值,请大大们帮改改String __fastcall TForm1::getvalue(String strValue)//获得xml中的数据

怎样取得对应的值,请大大们帮改改
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 数组什么的 方法很多

热点排行