你可以先查数据库,然后用SAX或是JDOM等解析方式将其解析成xml文件,
我以前做过一个这方面的小程序,主要是从数据库里查询出来的表的字段生成相应的xml文件,还是就是生成初始化类和操作类。

解决方案 »

  1.   

    把查出来的结果生成一个xml文件就行了啊
      

  2.   

    象hapylong(静水无痕) 说的一样
      

  3.   

    查询数据库得到结果集,用jdom或者dom写文件
      

  4.   

    我做的是直接把查詢的資料轉連串起來,讓侯換為文件流形式寫到XML檔。主要的代碼如下:
    public boolean getXMLFile(String strFolderPath,String strDateFrom,String strEndDate,javax.servlet.http.HttpServletResponse response){
         ResultSet rs=null;
         String strData="";
         String strEve="";//
         try{
    //     建立新檔案夾(Folder)
                String strFolderName=strFolderPath ;//          建立所要產生的xml檔
                FileOutputStream fileout=new FileOutputStream(strFolderName);//          建立寫檔的object
                OutputStreamWriter objOutWriter=new OutputStreamWriter(fileout,"Big5");            //使用BufferWrite方式
                BufferedWriter objBuffWriter=new BufferedWriter(objOutWriter);//          建立檔案
                objBuffWriter.write("<?xml version=" + "\"1.0\" " + "encoding=" + "\"Big5\" " +
                                    "standalone=" + "\"yes\"?>\n");
                objBuffWriter.write("<DATAs>\n");
                
         StringBuffer strSQL=new StringBuffer();
    strSQL.append("select ");
    strSQL.append("B2.CLASS_NAME,B4.MCLASSNM,PlantCname,B4.MCLASSSNM,");
    strSQL.append("BreedingCName,ApplyRepresentativesCName,ApplyAddressCName,ApplyTelephone,");
    strSQL.append("ApplyFax,ApplyEmail,AnnounceNo,ApplyNo,OpenDate,CertificateNo,ApplyDate,");
    strSQL.append("AnnounceDate,IssueDate,AcceptNo ");
    strSQL.append("from NP04_new as B4 left outer join np03 as B3 on B4.MCLASSNM=B3.MCLASSNM ");
    strSQL.append("left outer join NP02 as B2 on B3.CLASS_NO=B2.CLASS_NO and B2.NO='01' where 1=1 ");
    if(strDateFrom!=null&&!strDateFrom.trim().equals("")){
    strSQL.append(" and B4.ApplyDate>=?");
    strEve+=strDateFrom+",";
    }
    if(strEndDate!=null&&!strEndDate.trim().equals("")){
    strSQL.append(" and B4.ApplyDate<=?");
    strEve+=strEndDate+",";
    }
    //System.out.println(strSQL);
    //System.out.println(strEve);

    //調用executeQuery執行SQL語句
    rs=executeQuery(strSQL.toString(),strEve);
    iCount=0;
    //把查詢出來的每筆記錄串聯起來,以文件流的形式寫到文檔
    while(rs.next()){
    strData = "<A4 ";
                    //跑Columns的Loop
                    for (int j = 1; j <= rs.getMetaData().getColumnCount(); j++) {
                      strData += rs.getMetaData().getColumnName(j) + "='" +
                          tranNull(rs.getString(j)).trim() + "' ";
                    }
                    strData += "/>\n";
                    objBuffWriter.write(strData);
                    iCount++;
    }
                objBuffWriter.write("</DATAs>");
                objBuffWriter.flush();
                objBuffWriter.close();
                return true;
            }
            catch(Exception e){
              System.out.println("發生錯誤:DataToXML(getXMLFile)-轉換XML發生錯誤");
                 System.out.println("錯誤原因:"+e.toString());
                 return false;
            }
        }
    希望對你有幫助