<?xml version="1.0" encoding='gb2312'?>
<ufinterface sender="" receiver="" roottag="" docid="" proc="" codeexchanged="" exportneedexch="" display="" family="" timestamp="">
<storeinout>
<header>
<receiveflag></receiveflag>
<vouchtype></vouchtype>
<businesstype></businesstype>
<source></source>
<businesscode></businesscode>
<warehousecode></warehousecode>
<date></date>
<code></code>
<receivecode></receivecode>
<departmentcode></departmentcode>
<personcode></personcode>
<purchasetypecode></purchasetypecode>
<saletypecode></saletypecode>
<customercode></customercode>
<vendorcode></vendorcode>
<ordercode></ordercode>
<quantity></quantity>
<arrivecode></arrivecode>
<billcode></billcode>
<consignmentcode></consignmentcode>
<arrivedate></arrivedate>
<checkcode></checkcode>
<checkdate></checkdate>
<checkperson></checkperson>
<templatenumber></templatenumber>
<serial></serial>
<handler></handler>
<memory></memory>
<maker></maker>
<define1></define1>
<define2></define2>
<define3></define3>
<define4></define4>
<define5></define5>
<define6></define6>
<define7></define7>
<define8></define8>
<define9></define9>
<define10></define10>
<define11></define11>
<define12></define12>
<define13></define13>
<define14></define14>
<define15></define15>
<define16></define16>
<auditdate></auditdate>
                        <taxrate></taxrate>
                        <exchname></exchname>
                        <exchrate></exchrate> 
</header>
<body>
<entry>
<id></id>
<barcode></barcode>
<inventorycode></inventorycode>
<free1></free1>
<free2></free2>
<free3></free3>
<free4></free4>
<free5></free5>
<free6></free6>
<free7></free7>
<free8></free8>
<free9></free9>
<free10></free10>
<shouldquantity></shouldquantity>
<shouldnumber></shouldnumber>
<quantity></quantity>
<assitantunit></assitantunit>
<number></number>
<price></price>
<cost></cost>
<plancost></plancost>
<planprice></planprice>
<serial></serial>
<makedate></makedate>
<validdate></validdate>
<transitionid></transitionid>
<subbillcode></subbillcode>
<subpurchaseid></subpurchaseid>
<position></position>
<itemclasscode></itemclasscode>
<itemclassname></itemclassname>
<itemcode></itemcode>
<itemname></itemname>
<define22></define22>
<define23></define23>
<define24></define24>
<define25></define25>
<define26></define26>
<define27></define27>
<define28></define28>
<define29></define29>
<define30></define30>
<define31></define31>
<define32></define32>
<define33></define33>
<define34></define34>
<define35></define35>
<define36></define36>
<define37></define37>
<subconsignmentid></subconsignmentid>
<delegateconsignmentid></delegateconsignmentid>
<subproducingid></subproducingid>
<subcheckid></subcheckid>
                                <cRejectCode></cRejectCode>
                                <iRejectIds></iRejectIds>
                                <cCheckPersonCode></cCheckPersonCode>
                                <dCheckDate></dCheckDate>
                                <cCheckCode></cCheckCode>
                                <iMassDate></iMassDate>
                                <ioritaxcost></ioritaxcost> 
                                <ioricost></ioricost> 
                                <iorimoney></iorimoney> 
                                <ioritaxprice></ioritaxprice> 
                                <iorisum></iorisum> 
                                <taxrate></taxrate> 
                                <taxprice></taxprice> 
                                <isum></isum> 
                                <massunit></massunit> 
</entry>
</body>
</storeinout>
</ufinterface>我想把这个文件读进来,然后往需要的元素节点填充数据,如往<date></date> 之间写入"2005-06-29",我该怎么用程序实现,我用程序写了一段,但总是死循环,不知道为什么?请大家帮忙,100分表示感谢!
   xmldoc.LoadFromFile('d:\program\入库单.xml');
   xmldoc.Active:=true;
   root:=xmldoc.DocumentElement ;
   Parent_Node := Root.ChildNodes.First;
   parent_node:=parent_node.ChildNodes.First;
   while (parent_node<>nil) do
   begin
     if parent_node.NodeName='header' then
     begin
       child_node:=parent_node.ChildNodes.First;
        while (Child_Node <> nil) do 
         begin
          if (Child_Node.NodeName = 'date') then 
            showmessage('日期') ;
            child_node.NextSibling;
         end;
     end;
     parent_node.NextSibling;
   end;

解决方案 »

  1.   

    TClientDataSet,用数据库方式修改!
      

  2.   

    我要用 xmldocument控件来实现的,用TClientDataset能与XML文件关联实现修改数据吗?
      

  3.   

    if (Child_Node.NodeName = 'date') then 
                showmessage('日期') ;
                child_node.NextSibling;
    改为:
    if (Child_Node.NodeName = 'date') then 
                showmessage('日期') ;
                child_node:=child_node.NextSibling;
      

  4.   

    while (Child_Node <> nil) do 
             begin
              if (Child_Node.NodeName = 'date') then 
                showmessage('日期') ;
                child_node.NextSibling;
             end;
    建议楼主好好学习以下数据结构
    什么叫做链表
    这样不死循环才怪呢~
      

  5.   

    感谢feitianbianfu16,问题我已经得到解决,主要是对XMLDOCUMENT控件不熟悉的缘故才造成的,谢谢了