我将XML记录导入DATAGRID(ADOQ_LoadUml.LoadFromFile(A.XML);) (如有30条记录)后
要删除条件过滤查询后的记录(如有10条),最后xml文件应只剩20条,请为该如何执行此删除操作

解决方案 »

  1.   

    用TXmlDocument对象装载此xml,然后查找你过滤出的节点,再将这些节点删除即可.
    例:
    var
      xmldoc:TXmlDocument
      ANode:IXml
    begin
      xmldoc.create('test.xml');
      try
        ..//根据过滤数据,找出要删除的节点
        xmldoc.DocumentElement.ChildNodes.delete('要删除的节点名');
      finally
        xmldoc.free;
      end;
    end;
      

  2.   

    xml的节点.既然你能用datagrid装载这个xml,应该它每个节点对应datagrid中的一条记录.你打开xml文件看看就知
      

  3.   

    - <xml xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema">
    - <s:Schema id="RowsetSchema">
    - <s:ElementType name="row" content="eltOnly" rs:updatable="true">
    - <s:AttributeType name="ID" rs:number="1" rs:maydefer="true" rs:writeunknown="true" rs:basetable="ReadHistory" rs:basecolumn="ID" rs:keycolumn="true" rs:autoincrement="true">
      <s:datatype dt:type="int" dt:maxLength="4" rs:precision="10" rs:fixedlength="true" /> 
      </s:AttributeType>
    - <s:AttributeType name="c1" rs:name="读卡时间" rs:number="2" rs:nullable="true" rs:maydefer="true" rs:writeunknown="true" rs:basetable="ReadHistory" rs:basecolumn="读卡时间">
      <s:datatype dt:type="dateTime" rs:dbtype="variantdate" dt:maxLength="16" rs:fixedlength="true" /> 
      </s:AttributeType>
    - <s:AttributeType name="c2" rs:name="身份证号码" rs:number="3" rs:nullable="true" rs:maydefer="true" rs:writeunknown="true" rs:basetable="ReadHistory" rs:basecolumn="身份证号码">
      <s:datatype dt:type="string" dt:maxLength="20" rs:fixedlength="true" /> 
      </s:AttributeType>
    - <s:AttributeType name="c3" rs:name="姓名" rs:number="4" rs:nullable="true" rs:maydefer="true" rs:writeunknown="true" rs:basetable="ReadHistory" rs:basecolumn="姓名">
      <s:datatype dt:type="string" dt:maxLength="10" rs:fixedlength="true" /> 
      </s:AttributeType>
    - <s:AttributeType name="c4" rs:name="性别" rs:number="5" rs:nullable="true" rs:maydefer="true" rs:writeunknown="true" rs:basetable="ReadHistory" rs:basecolumn="性别">
      <s:datatype dt:type="string" dt:maxLength="4" rs:fixedlength="true" /> 
      </s:AttributeType>
    - <s:AttributeType name="c5" rs:name="民族" rs:number="6" rs:nullable="true" rs:maydefer="true" rs:writeunknown="true" rs:basetable="ReadHistory" rs:basecolumn="民族">
      <s:datatype dt:type="string" dt:maxLength="10" rs:fixedlength="true" /> 
      </s:AttributeType>
    - <s:AttributeType name="c6" rs:name="出生日期" rs:number="7" rs:nullable="true" rs:maydefer="true" rs:writeunknown="true" rs:basetable="ReadHistory" rs:basecolumn="出生日期">
      <s:datatype dt:type="dateTime" rs:dbtype="variantdate" dt:maxLength="16" rs:fixedlength="true" /> 
      </s:AttributeType>
    - <s:AttributeType name="c7" rs:name="家庭住址" rs:number="8" rs:nullable="true" rs:maydefer="true" rs:writeunknown="true" rs:basetable="ReadHistory" rs:basecolumn="家庭住址">
      <s:datatype dt:type="string" dt:maxLength="70" rs:fixedlength="true" /> 
      </s:AttributeType>
    - <s:AttributeType name="c8" rs:name="签发机关" rs:number="9" rs:nullable="true" rs:maydefer="true" rs:writeunknown="true" rs:basetable="ReadHistory" rs:basecolumn="签发机关">
      <s:datatype dt:type="string" dt:maxLength="50" rs:fixedlength="true" /> 
      </s:AttributeType>
    - <s:AttributeType name="c9" rs:name="开始有效期" rs:number="10" rs:nullable="true" rs:maydefer="true" rs:writeunknown="true" rs:basetable="ReadHistory" rs:basecolumn="开始有效期">
      <s:datatype dt:type="dateTime" rs:dbtype="variantdate" dt:maxLength="16" rs:fixedlength="true" /> 
      </s:AttributeType>
    - <s:AttributeType name="c10" rs:name="截止有效期" rs:number="11" rs:nullable="true" rs:maydefer="true" rs:writeunknown="true" rs:basetable="ReadHistory" rs:basecolumn="截止有效期">
      <s:datatype dt:type="dateTime" rs:dbtype="variantdate" dt:maxLength="16" rs:fixedlength="true" /> 
      </s:AttributeType>
    - <s:AttributeType name="c11" rs:name="附加信息" rs:number="12" rs:nullable="true" rs:maydefer="true" rs:writeunknown="true" rs:basetable="ReadHistory" rs:basecolumn="附加信息">
      <s:datatype dt:type="string" dt:maxLength="50" rs:fixedlength="true" /> 
      </s:AttributeType>
    - <s:AttributeType name="c12" rs:name="照片信息" rs:number="13" rs:nullable="true" rs:maydefer="true" rs:writeunknown="true" rs:basetable="ReadHistory" rs:basecolumn="照片信息">
      <s:datatype dt:type="bin.hex" dt:maxLength="1073741823" rs:long="true" /> 
      </s:AttributeType>
    - <s:AttributeType name="c13" rs:name="追加地址" rs:number="14" rs:nullable="true" rs:maydefer="true" rs:writeunknown="true" rs:basetable="ReadHistory" rs:basecolumn="追加地址">
      <s:datatype dt:type="string" dt:maxLength="150" rs:fixedlength="true" /> 
      </s:AttributeType>
      <s:extends type="rs:rowbase" /> 
      </s:ElementType>
      </s:Schema>
    - <rs:data>
      <z:row ID="156" c1="2005-03-07T14:34:16" c2="110108199611240189" c3="李久熙" c4="女" c5="汉" c6="1996-11-24T00:00:00" c7="北京市海淀区双榆树东里99区2号楼302室" c8="北京市公安局西城分局" c9="2004-12-10T00:00:00" c10="2009-12-10T00:00:00" c11="" c13="" /> 
      <z:row ID="157" c1="2005-03-07T14:34:36" c2="110108199611240189" c3="李久熙" c4="女" c5="汉" c6="1996-11-24T00:00:00" c7="北京市海淀区双榆树东里99区2号楼302室" c8="北京市公安局西城分局" c9="2004-12-10T00:00:00" c10="2009-12-10T00:00:00" c11="" c13="" /> 
        <z:row ID="167" c1="2005-03-07T15:00:04" c2="110108199611240189" c3="李久熙" c4="女" c5="汉" c6="1996-11-24T00:00:00" c7="北京市海淀区双榆树东里99区2号楼302室" c8="北京市公安局西城分局" c9="2004-12-10T00:00:00" c10="2009-12-10T00:00:00" c11="" c13="" /> 
      <z:row ID="161" c1="2005-03-07T14:34:47" c2="110108199611240189" c3="李久熙" c4="女" c5="汉" c6="1996-11-24T00:00:00" c7="北京市海淀区双榆树东里99区2号楼302室" c8="北京市公安局西城分局" c9="2004-12-10T00:00:00" c10="2009-12-10T00:00:00" c11="" c13="" /> 
      <z:row ID="162" c1="2005-03-07T14:34:49" c2="110108199611240189" c3="李久熙" c4="女" c5="汉" c6="1996-11-24T00:00:00" c7="北京市海淀区双榆树东里99区2号楼302室" c8="北京市公安局西城分局" c9="2004-12-10T00:00:00" c10="2009-12-10T00:00:00" c11="" c13="" /> 
      <z:row ID="164" c1="2005-03-07T14:34:54" c2="110108199611240189" c3="李久熙" c4="女" c5="汉" c6="1996-11-24T00:00:00" c7="北京市海淀区双榆树东里99区2号楼302室" c8="北京市公安局西城分局" c9="2004-12-10T00:00:00" c10="2009-12-10T00:00:00" c11="" c13="" /> 
      <z:row ID="168" c1="2005-03-07T15:00:07" c2="110108199611240189" c3="李久熙" c4="女" c5="汉" c6="1996-11-24T00:00:00" c7="北京市海淀区双榆树东里99区2号楼302室" c8="北京市公安局西城分局" c9="2004-12-10T00:00:00" c10="2009-12-10T00:00:00" c11="" c13="" /> 
      
      </rs:data>
      </xml>
      

  4.   

    我的XML如上,我要几条删除记录,该怎么操作啊,哪位高手说下啊
      

  5.   

    ClientDataSet load xml file
    删除记录后
    ClientDataSet.MergeChangeLog后再存为XML文件。
      

  6.   

    看你上面贴出的xml.每条记录对应一个节点s.
    建议先看看delphi的demo.
    aloking(黑鲸)的方案也是可行的,不明白为啥不明白.