2017-09-14 142 views
0

我想创建由同样喜欢从数据库这样获取数据后,下面给出一个XML文件:my db table looks like this我用的Java servlet是在XML文件创建新手任何帮助,将不胜感激。如何从mysql数据库获取数据后创建XML文件?

,我想通过一个servlet来创建我的XML文件:

<?xml version="1.0" encoding="UTF-8"?> 
     <root> 
     <expanded>true</expanded> 
    <children> 
    <element> 
     <text>Setup</text> 
     <leaf>false</leaf> 
     <iconCls>x-fa fa-gears</iconCls> 
     <cls>mainNav</cls> 
     <children> 
      <element> 
       <leaf>false</leaf> 
       <text>Academics</text> 
       <iconCls>x-fa fa-graduation-cap</iconCls> 
       <cls>mainNav</cls> 
       <children> 
      <element> 
       <leaf>true</leaf> 
       <text>Session</text> 
       <iconCls>x-fa fa-star</iconCls> 
       <cls>PIU.view.setup.academics.AcademicSession</cls> 
      </element> 
      <element> 
       <leaf>true</leaf> 
       <text>Faculty</text> 
       <iconCls>x-fa fa-star-o</iconCls> 
       <cls>PIU.view.setup.academics.AcademicFaculty</cls> 
      </element> 
      <element> 
       <leaf>true</leaf> 
       <text>Shifts</text> 
       <iconCls>x-fa fa-star-o</iconCls> 
       <cls>PIU.view.setup.academics.MaintainShifts</cls> 
      </element> 
      </children> 
      </element> 
      <element> 
       <leaf>false</leaf> 
       <text>Institution</text> 
       <iconCls>x-fa fa-university</iconCls> 
       <cls>mainNav</cls> 
      <children> 
      <element> 
       <leaf>true</leaf> 
       <text>Institution</text> 
       <iconCls>x-fa fa-globe</iconCls> 
       <cls>PIU.view.setup.institution.DefineInstitution</cls> 
      </element> 
      <element> 
       <leaf>true</leaf> 
       <text>Facilities</text> 
       <iconCls>x-fa fa-building</iconCls> 
       <cls>PIU.view.setup.institution.MaintainFacilities</cls> 
      </element> 
      <element> 
       <leaf>true</leaf> 
       <text>Letter Head</text> 
       <iconCls>x-fa fa-info</iconCls> 
      </element> 
      </children> 
       </element> 
      </children> 
      </element> 
     </children> 
    </root> 

到目前为止,我已经试过这无法产生我想要的结果,请大家帮我出:

protected void doGet(HttpServletRequest request, HttpServletResponse 
    response) throws ServletException, IOException { 
    // TODO Auto-generated method stub 
    response.setContentType("text/xml"); 
    String reportName = "GenerateXML_Report_" 
      +System.currentTimeMillis()+".xml";  
    response.setHeader("Content-disposition", "attachment; " + 
      "filename=" + reportName); 

    try{  
     Datasource ds=new Datasource(); 
     ds.connect(); 
     java.sql.Statement s=ds.createStatement(); 
     ResultSet rs = s.executeQuery("Select label,action,icon_cls,leaf from common_features where is_visible=1"); 

    ArrayList<String> rows = new ArrayList<String>(); 
    rows.add("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); 
    rows.add("<root>"); 
    rows.add("<expanded>true</expanded>"); 
    rows.add("<children>"); 
    while(rs.next()) 
    { 
     rows.add("<element>"); 
     rows.add("<leaf>"); 
     rows.add(rs.getString(4)); 
     rows.add("</leaf>"); 
     rows.add("<text>"); 
     rows.add(rs.getString(1)); 
     rows.add("</text>"); 
     rows.add("<iconCls>"); 
     rows.add(rs.getString(3)); 
     rows.add("</iconCls>"); 
     rows.add("<cls>"); 
     rows.add(rs.getString(2)); 
     rows.add("</cls>"); 
     rows.add("</element>"); 

    } 
    rows.add("</children>"); 
    rows.add("</root>"); 

    Iterator<String> iter = rows.iterator(); 
    while (iter.hasNext()){ 
     String outputString = (String) iter.next(); 
     response.getOutputStream().print(outputString); 
    } 
    ds.dropConnection(); 
    } catch (Exception ex) { 
     ex.printStackTrace(); 
    } 
    //out.println(jobject); 
    response.getOutputStream().flush(); 


} 

当前我生成的xml文件如下所示:

<?xml version="1.0" encoding="UTF-8"?> 
<root> 
<expanded>true</expanded> 
    <children> 
    <element> 
     <leaf>true</leaf> 
     <text>Institution</text> 
     <iconCls>x-fa fa-globe</iconCls> 
     <cls>PIU.view.setup.institution.DefineInstitution</cls> 
    </element> 
    <element> 
     <leaf>true</leaf> 
     <text>Facilities</text> 
     <iconCls>x-fa fa-building</iconCls> 
     <cls>PIU.view.setup.institution.MaintainFacilities</cls> 
    </element> 
    <element> 
     <leaf>true</leaf> 
     <text>Session</text> 
     <iconCls>x-fa fa-star</iconCls> 
     <cls>PIU.view.setup.academics.AcademicSession</cls> 
    </element> 
    <element> 
     <leaf>true</leaf> 
     <text>Faculty</text> 
     <iconCls>x-fa fa-star-o</iconCls> 
     <cls>PIU.view.setup.academics.AcademicFaculty</cls> 
    </element> 
    <element> 
     <leaf>true</leaf> 
     <text>Shifts</text> 
     <iconCls>x-fa fa-star-o</iconCls> 
     <cls>PIU.view.setup.academics.MaintainShifts</cls> 
    </element> 
    <element> 
     <leaf>false</leaf> 
     <text>Setup</text> 
     <iconCls>x-fa fa-gears</iconCls> 
     <cls>mainNav</cls> 
    </element> 
    <element> 
     <leaf>false</leaf> 
     <text>Academics</text> 
     <iconCls>x-fa fa-graduation-cap</iconCls> 
     <cls>mainNav</cls> 
    </element> 
    <element> 
     <leaf>false</leaf> 
     <text>Institution</text> 
     <iconCls>x-fa fa-university</iconCls> 
     <cls>mainNav</cls> 
     </element> 
    </children> 
</root> 
+0

现在你叫什么结果呢?也许我可以看到问题来源。但为什么你要在循环之前添加标签?结果为第一行“”。 – fairtrax

+0

你应该使用一个库,像:https://stackoverflow.com/a/5059411/3959856 –

+0

对不起它我的错误我删除@fairtrax其被错误在该代码添加的元素部分 –

回答

0

您用于创建X的方式ML文件是错误的,因为你硬编码你的代码中的每一件事。假设你将来想改变你的XML文件。这将花费太多时间,对于您来说,更改XML也将非常繁琐。因此,请按照以下文档链接创建XML文件,它将帮助您生成XML文件。

https://www.mkyong.com/java/how-to-create-xml-file-in-java-dom/

如果您有任何关于执行任何查询,请让我知道。

+0

确定我知道我会改变这样我的代码,但我不知道该如何实现那种被上面的XML文件中给出 –

+0

仔细阅读文档的XML格式。你必须实现的一件事是你的resultSet输出的“for循环”。并在文档中写入文档的代码。 –

+0

这是真正的问题,我不知道如何让这样的循环,这让我期望的输出@ChetanTayade –

相关问题