在用delphi将数据表导出到xml文件时碰到一个问题,就是导出后的格式不是我想要的xml文件格式,不知道要怎么办,希望大家提提建议:
现在我用ADOQuery1.SaveToFile('c:\aa.xml',pfXML);导出后的格式如下:
- <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="jlh" rs:number="1" rs:basecatalog="sckdata" rs:basetable="order_detail" rs:basecolumn="jlh" rs:keycolumn="true" rs:autoincrement="true">
  <s:datatype dt:type="number" rs:dbtype="numeric" dt:maxLength="19" rs:scale="0" rs:precision="28" rs:fixedlength="true" rs:maybenull="false" /> 
  </s:AttributeType>
- <s:AttributeType name="hth" rs:number="2" rs:writeunknown="true" rs:basecatalog="sckdata" rs:basetable="order_detail" rs:basecolumn="hth">
  <s:datatype dt:type="string" rs:dbtype="str" dt:maxLength="15" rs:maybenull="false" /> 
  </s:AttributeType>
- <s:AttributeType name="xh" rs:number="3" rs:writeunknown="true" rs:basecatalog="sckdata" rs:basetable="order_detail" rs:basecolumn="xh">
  <s:datatype dt:type="string" rs:dbtype="str" dt:maxLength="40" rs:maybenull="false" /> 
  </s:AttributeType>
- <s:AttributeType name="sh" rs:number="4" rs:writeunknown="true" rs:basecatalog="sckdata" rs:basetable="order_detail" rs:basecolumn="sh">
  <s:datatype dt:type="string" rs:dbtype="str" dt:maxLength="30" rs:maybenull="false" /> 
  </s:AttributeType>
- <s:AttributeType name="amount_unit" rs:number="5" rs:writeunknown="true" rs:basecatalog="sckdata" rs:basetable="order_detail" rs:basecolumn="amount_unit">
  <s:datatype dt:type="string" rs:dbtype="str" dt:maxLength="10" rs:maybenull="false" /> 
  </s:AttributeType>
- <s:AttributeType name="order_amount" rs:number="6" rs:writeunknown="true" rs:basecatalog="sckdata" rs:basetable="order_detail" rs:basecolumn="order_amount">
  <s:datatype dt:type="number" rs:dbtype="numeric" dt:maxLength="19" rs:scale="2" rs:precision="10" rs:fixedlength="true" rs:maybenull="false" /> 
  </s:AttributeType>
  <s:extends type="rs:rowbase" /> 
  </s:ElementType>
  </s:Schema>
- <rs:data>
  <z:row jlh="825554" hth="" xh="IDT0427" sh="3" amount_unit="百粒" order_amount="130.00" /> 
  <z:row jlh="825553" hth="" xh="ADS3035" sh="5" amount_unit="百粒" order_amount="140.00" /> 
  </rs:data>
  </xml>
现想导出后是如下格式,不知道怎么办:
  <?xml version="1.0" encoding="gb2312" standalone="yes" ?> 
- <VFPData>
- <data>
  <jlh>825554</jlh> 
  <hth /> 
  <xh>IDT0427</xh> 
  <sh>3</sh> 
  <amount_unit>百粒</amount_unit> 
  <order_amount>130.00</order_amount> 
  </data>
- <data>
  <jlh>825553</jlh> 
  <hth /> 
  <xh>ADS3035</xh> 
  <sh>5</sh> 
  <amount_unit>百粒</amount_unit> 
  <order_amount>140.00</order_amount> 
  </data>
  </VFPData>

解决方案 »

  1.   

    ADOQuery1就是这种格式,除非你自己在进行处理吧
      

  2.   

    自己写读写XML的过程,根据数据设立结点,并向结点中写入数据!
      

  3.   

    XMLDocument1组件,可以进行简单的格式化,但是转化后能否在被adoquery使用,就不知了,试试吧
      

  4.   

      xml.Active:=True;
      xml.Version:='1.0';
      xml.Encoding:='GB2312';
      xmlroot:=xml.AddChild('root');    while not qrySQL.Eof do begin
          for j:=0 to qrySQL.Fields.Count-1 do
          begin
            xmlField:=xmlroot.AddChild(qrysql.fields[i]);
            xmlField.Text:=qrySQL.FieldByName(qrysql.fields[i]).AsString;
          end;
          qrySQL.Next;
        end;xml.SaveToFile('c:\aa.xml');
      

  5.   

    shuihan20e,太谢谢了,可以用了。
      

  6.   

      xml.Active:=True;
      xml.Version:='1.0';
      xml.Encoding:='GB2312';
      xmlroot:=xml.AddChild('root');这些XML是什么意思,在DELPHI里加什么组件