我在WEB服务器上将客户数据用DATASET对象保存为XML文件再Reponse.WriteFile到客户端,却发觉XML文件后面加了什么DTD框架,在客户端用DATASET LOAD 这个XML文件时出错.
怎么样才能不让那个DTD框架加在XML文件后面?我WEBFORM的PAGELAYOUT WEIwei为页面流的.

解决方案 »

  1.   

    好象读不了客户端的文件吧..你把XML写在COOKIES里面然后从COOKIES里面读出来还行
      

  2.   

    //我是这样把XML文件写到客户端的:
    DataTable tblCusDat1=function.ExecuteSql("SELECT C. id, UnitName, LinkMan, Fax, Address, Tel, Email, AccessData,SourceID,E.Title,E.SimpleTitle,Downloaded FROM CustomerInfo As C Inner Join ElementData As E On C.SourceID=E.id  Order By AccessData Desc");
    filename=Server.MapPath(".")+"\\"+sFlag+"UnRegCusDat.xml"; Response.Clear();
    //Response.BufferOutput=true;
    Response.AppendHeader("Content-Disposition", "attachment;filename="+sFlag+"UnRegCusDat"+DateTime.Now.ToShortDateString()+".xml");
    Response.ContentType = "application/octet-stream";
    //this.Response.Charset  =  "UTF-8";
    this.Response.ContentEncoding  =System.Text.Encoding.Default;
    }

    string sxml=""; sxml=tblCusDat1.DataSet.GetXml(); byte[] buf=System.Text.Encoding.Default.GetBytes(sxml);
    //运行到这里察看sxml数据,后面还没有DTD数据
    Response.BinaryWrite(buf);//但是写到客户端接收之后,在本地打开,结果后面有了这么一段文字了:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
    <HEAD>
    <title>DownloadCustData</title>
    <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
    <meta name="CODE_LANGUAGE" Content="C#">
    <meta name="vs_defaultClientScript" content="JavaScript">
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    </HEAD>
    <body>
    <form name="Form1" method="post" action="DownloadCustData.aspx?Type=UnReg&amp;Schema=False" id="Form1">
    <input type="hidden" name="__VIEWSTATE" value="dDwtMTI3OTMzNDM4NDs7PqMnnaFuZCvYem4pkqD/XAIf0XJB" /> <FONT face="宋体"></FONT>
    </form>
    </body>
    </HTML>有了这段文字,再在客户端导到DataSet对象的时候就出错了.
    现在是怎么样不会附加这段文字.
      

  3.   

    是在aspx文件里面有这段文字,删掉就没有了;自问自答,没依稀