发送一个xml文件可以直接以一个文本文件的方式来发送
FileWriter或者FileOutputStream

解决方案 »

  1.   

    在Servlet环境下不需要转换为byte,直接通过PrintWriter回写到客户端就行了。
      

  2.   

    “我想,bytesSend参数是XML文件的转换结果”--没看明白你这句话的意思,如果byteSend是一个XML的Document对象,未经格式化和串行化,那么你可以使用以下的代码来回写xml,如果已经经过格式化和串行化,那么直接通过PrintWriter回写就行了。btw,下面代码中的srvCtx是封装过的Servlet环境,不同的应用请做变通处理。//XML Document系列化
    OutputFormat opformat = new OutputFormat( doc, "GB2312", true );
    XMLSerializer xmlSerializer = new XMLSerializer( srvCtx.getPrintWriter(), opformat );
    xmlSerializer.serialize( byteSend );
      

  3.   

    感谢二位。就是说XML的Document对象必须格式化和串行化,然后PrintWriter回写。
    有些没理解的是:
    1,我有个XML的Document对象doc,系列化我该放在那里算是系列化完成。
    2,PrintWriter回写的方法?能给些实例代码最好了。这里面的使用我不是太清楚。
      

  4.   

    晕。。我不是把核心代码给你了吗?上面那些代码需要导入的包是:
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;import org.apache.xml.serialize.OutputFormat;
    import org.apache.xml.serialize.XMLSerializer;import org.w3c.dom.Document;
    import org.w3c.dom.Element;其中OutputFormat和XMLSerializer是由Xerces提供的,古董的Crimson也提供了一个XmlDocument类,也可以完成类似的功能,只是和Xerces不兼容,不建议你使用。其它的接口来自JAXP,不同的解析器会对它们有不同的实现,这是需要注意的问题。
      

  5.   

    我不清楚的是srvCtx和doc分别是什么?
      

  6.   

    イサコテメ簍シ」ャdocニ萍オセヘハヌト羞トbyteSend」ャメ狆エXMLオトDOMカヤマャホメソスエ惲・羞トハアコムxmlSerializer.serialize( byteSend );メサセ莊トdocクトチヒ」ャノマテ贅サセ莽・ヒクト。」。」//XML Documentマオチミサッ
    OutputFormat opformat = new OutputFormat( byteSend, "GB2312", true );
    XMLSerializer xmlSerializer = new XMLSerializer( srvCtx.getPrintWriter(), opformat );
    xmlSerializer.serialize( byteSend );
      

  7.   

    晕死,忘了中文系统保存的记事本文件到了日文系统下就会变成乱码,上面那个回复的实际内容如下。-_-#======================================================================================不好意思,doc其实就是你的byteSend,亦即XML的DOM对象,我拷代码给你的时候把xmlSerializer.serialize( byteSend );一句的doc改了,上面一句忘了改。。//XML Document系列化
    OutputFormat opformat = new OutputFormat( byteSend, "GB2312", true );
    XMLSerializer xmlSerializer = new XMLSerializer( srvCtx.getPrintWriter(), opformat );
    xmlSerializer.serialize( byteSend );
      

  8.   

    to  drugon(personal) 
    我需要向平台发送XML文件,那边的技术说要这样
     OutputStream os = response.getOutputStream();
     os.write(bytesSend);
      os.flush();
    才能返回XML文件,所以有此一问。贻笑大方咯。to 耐心的 wingtrace(暮寒.烟灰.风化物.天佑我的母亲) 这样就行了吧long nStart;
       //记录已经下载的字节数
    File tempFile=new File(“donwzip.tmp”);
        //创建临时文件
        FileOutputStream file=new FileOutputStream(tempFile); 
        //创建文件输出流
      ObjectOutputStream serialize=new ObjectOutputStream(file);
        //创建文件序列化流
        serialize.writeObject(nStart);//序列化
        serialize.flush();
    //刷新序列化流
        file.close();
    //关闭文件输出流
        serialize.close();
      

  9.   

    to wingtrace(暮寒.烟灰.风化物.天佑我的母亲) 我这里只有一个XML的Document对象doc(上面的byteSend)srvCtx.getPrintWriter()是个OutputStream吧?我该怎么做呢?
      

  10.   

    请问,这样序列化可以吗?
    FileOutputStream file = new FileOutputStream (new File ("c:\\a.xml"));
          ObjectOutputStream serialize = new ObjectOutputStream (file);
          serialize.writeObject (serialize); //序列化
          serialize.flush ();
          file.close ();
          serialize.close ();
    FileOutputStream 也有了,怎么发送出去也是个问题哟
      

  11.   

    关于那几个类和接口的具体用法,请参考Xerces附带的文档,如果没有,请去
    http://xml.apache.org 下载。
      

  12.   

    在此感谢!!!!!  wingtrace(暮寒.烟灰.风化物.天佑我的母亲) 
    今天有空,结贴