CREATE PROCEDURE P_SearchXML
@sql_str varchar(100)
AS

set @sql_str  =@sql_str +'  for XML Auto,BINARY BASE64'
EXEC sp_makewebtask
       @outputfile = 'c:\Search.xml',
@query= @sql_str,
@templatefile ='c:\TEMPXML.tmp'
GO
exec P_SearchXML 'select * from orders’
我用存储过程将数据导出'c:\Search.xml',可打开出'c:\Search.xml'时却报错:“无法显示 XML 页。使用 XSL 样式表无法查看 XML 输入。请更正错误然后单击 刷新按钮,或以后重试。在属性和属性值之间缺少等号。处理资源 'file:///C:/Search.xml' 时出错。第 12 行,位置: 1 [/color]”
经编辑'c:\Search.xml',删除多余的空格就可以打开了,这是为什么呀?有没有解决办法?急急急急急急急急急急急急急急急急急急急急,救救救救救救救救救救救救救救我

解决方案 »

  1.   

    可能是你导出xml的格式不对,试试找找有没有相关的控件看看!
      

  2.   

    用控件吧 TXMLDocument
    http://www.zaoxue.com/article/tech-39973.htm那个ADOTable好像可以直接存成.xml
      

  3.   


    抄一个给你参考
    --写为存储过程,方便调用:   
        
      /*--存为XML   
      将表/查询存储为标准的XML文件   
      --邹建   2003.12--*/   
        
      /*--调用示例   
      --用SQL用winows身份验证的情况   
      exec   p_savexml   @sql='地区资料',@fname='c:\地区资料.xml'   
        
      --用指定的用户   
      exec   p_savexml   @sql='地区资料',@fname='c:\地区资料.xml',@userid='sa'   
      --*/   
      if   exists   (select   *   from   dbo.sysobjects   where   id   =   object_id(N'[dbo].[p_savexml]')   and   OBJECTPROPERTY(id,   N'IsProcedure')   =   1)   
      drop   procedure   [dbo].[p_savexml]   
      GO   
        
      create   proc   p_savexml   
      @sql   varchar(8000), --要保存的表/视图/SQL查询语句   
      @fname   varchar(1000)='c:\tmp.xml', --保存的XML文件名   
      @userid   varchar(50)='', --用户名,如果为nt验证方式,则为''   
      @password   varchar(50)='' --密码   
      as   
      declare   @err   int,@src   varchar(255),@desc   varchar(255)   
      declare   @obj   int,@constr   varchar(1000)   
      if   isnull(@userid,'')=''   
      set   @constr='Provider=SQLOLEDB.1;Integrated   Security=SSPI;Persist   Security   Info=False;Initial   Catalog='   
      +db_name()+';Data   Source='+@@servername   
      else   
      set   @constr='Provider=SQLOLEDB.1;Persist   Security   Info=True;'   
      +'User   ID='+@userid+';Password='+isnull(@password,'')   
      +';Initial   Catalog='+db_name()+';Data   Source='+@@servername   
        
      exec   @err=sp_oacreate   'adodb.recordset',@obj   out   
      if   @err<>0   goto   lberr   
        
      exec   @err=sp_oamethod   @obj,'open',null,@sql,@constr   
      if   @err<>0   goto   lberr   
        
      set   @sql='del   '+@fname   
      exec   master..xp_cmdshell   @sql,no_output   
      exec   @err=sp_oamethod   @obj,'save',null,@fname,1   
      if   @err<>0   goto   lberr   
        
      exec   @err=sp_oadestroy   @obj   
      return   
        
      lberr:   
      exec   sp_oageterrorinfo   0,@src   out,@desc   out   
      select   cast(@err   as   varbinary(4))   as   错误号   
      ,@src   as   错误源,@desc   as   错误描述   
      go