在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java/ 多重嵌套for循環(huán)生成xml,需要獲得兩個變量,如何化簡

多重嵌套for循環(huán)生成xml,需要獲得兩個變量,如何化簡

寫一個循環(huán)生成xml,應該可以用遞歸化簡,但寫起來的時候沒有思路,因為需要傳兩個變量

    //創(chuàng)建根目錄
    Document root = DocumentHelper.createDocument();
    //創(chuàng)建根節(jié)點
    Element CNCRS = root.addElement("cncrs:CNCRS");
    //添加命名空間
    CNCRS.addNamespace("stc", "http://aeoi.chinatax.gov.cn/crs/stctypes/v1");
    CNCRS.addNamespace("cncrs", "http://aeoi.chinatax.gov.cn/crs/cncrs/v1");
    //添加版本號
    CNCRS.addAttribute("verison", "1.0");
    String data = "hhhh";
    //獲取一級節(jié)點列表
    String sql = "select * from crs_table where CRS_LEVEL='1'";
    List<?> list = dao.queryWithJDBC(sql);
    for(int i = 0;i<list.size();i++){
     Map<String, String> map = (Map<String, String>) list.get(i);
     //獲取節(jié)點ID
     String id = map.get("CRS_ID");
     System.out.println(id);
     //獲取節(jié)點名稱
     String element = map.get("CRS_ELEMENT");
     //獲取父節(jié)點名稱
     String parent_element = map.get("CRS_PARENT_ELEMENT");
     //獲取節(jié)點文本內(nèi)容
     String sql1 = "select crs_value from crs_value where CRS_ELEMENT = '"+element+"' and CRS_LEVEL='1'";
     Map<String, String> map2 = (Map<String, String>) dao.queryWithJDBC(sql1).get(0);
     //插入節(jié)點
     Element oneLevel = CNCRS.addElement(element);
     //插入文本內(nèi)容
     if (map2.get("CRS_value") != null) {
         oneLevel.setText(map2.get("CRS_value"));
    }
     sql = "select * from crs_table where CRS_LEVEL='2' and CRS_PARENT_ID = '"+id+"'";
     List<?> list1 = dao.queryWithJDBC(sql);
         for (int a = 0; a<list1.size(); a++) {
              map = (Map<String, String>) list1.get(a);
             id = map.get("CRS_ID");
             System.out.println(id);
             element = map.get("CRS_ELEMENT");
             parent_element = map.get("CRS_PARENT_ELEMENT");
             String sql2 = "select crs_value from crs_value where CRS_ELEMENT = '"+element+"' and CRS_PARENT_ELEMENT = '"+parent_element+"' and CRS_LEVEL='2'";
             map2 = (Map<String, String>) dao.queryWithJDBC(sql2).get(0);
             Element twoLevel = oneLevel.addElement(element);
             if (map2.get("CRS_value") != null) {
                 twoLevel.setText(map2.get("CRS_value"));
            }
             sql = "select * from crs_table where CRS_LEVEL='3' and CRS_PARENT_ID = '"+id+"'";
             List<?> list2 = dao.queryWithJDBC(sql);
                 for (int b = 0; b<list2.size(); b++) {
                      map = (Map<String, String>) list2.get(b);
                     id = map.get("CRS_ID");
                     System.out.println(id);
                     element = map.get("CRS_ELEMENT");
                     parent_element = map.get("CRS_PARENT_ELEMENT");
                     String sql3 = "select crs_value from crs_value where CRS_ELEMENT = '"+element+"' and CRS_PARENT_ELEMENT = '"+parent_element+"' and CRS_LEVEL='3'";
                     map2 = (Map<String, String>) dao.queryWithJDBC(sql3).get(0);
                     Element thrLevel = twoLevel.addElement(element);
                     if (map2.get("CRS_value") != null) {
                         thrLevel.setText(map2.get("CRS_value"));
                    }
                     if (("cncrs:AccountBalance").equals(element)) {
                         thrLevel.addAttribute("currCode", "USD");
                    }
                     sql = "select * from crs_table where CRS_LEVEL='4' and CRS_PARENT_ID = '"+id+"'";
                     List<?> list3 = dao.queryWithJDBC(sql);
                         for (int c = 0; c<list3.size(); c++) {
                              map = (Map<String, String>) list3.get(c);
                             id = map.get("CRS_ID");
                             System.out.println(id);
                             element = map.get("CRS_ELEMENT");
                             parent_element = map.get("CRS_PARENT_ELEMENT");
                             String sql4 = "select crs_value from crs_value where CRS_ELEMENT = '"+element+"' and CRS_PARENT_ELEMENT = '"+parent_element+"' and CRS_LEVEL='4'";
                             map2 = (Map<String, String>) dao.queryWithJDBC(sql4).get(0);
                             Element fourLevel = thrLevel.addElement(element);
                             if (map2.get("CRS_value") != null) {
                                 fourLevel.setText(map2.get("CRS_value"));
                            }
                             if (("cncrs:AccountBalance").equals(element)) {
                                 fourLevel.addAttribute("currCode", "USD");
                            }else if (("stc:Name".equals(element))) {
                                fourLevel.addAttribute("nameType", "OECD202");
                            }else if (("stc:Address".equals(element))) {
                                fourLevel.addAttribute("legalAddressType", "OECD301");
                            }
                             sql = "select * from crs_table where CRS_LEVEL='5' and CRS_PARENT_ID = '"+id+"'";
                             List<?> list4 = dao.queryWithJDBC(sql);
                                 for (int d = 0; d<list4.size(); d++) {
                                      map = (Map<String, String>) list4.get(d);
                                     id = map.get("CRS_ID");
                                     System.out.println(id);
                                     element = map.get("CRS_ELEMENT");
                                     parent_element = map.get("CRS_PARENT_ELEMENT");
                                     String sql5 = "select crs_value from crs_value where CRS_ELEMENT = '"+element+"' and CRS_PARENT_ELEMENT = '"+parent_element+"' and CRS_LEVEL='5'";
                                     map2 = (Map<String, String>) dao.queryWithJDBC(sql5).get(0);
                                     Element fiveLevel = fourLevel.addElement(element);
                                     if (map2.get("CRS_value") != null) {
                                         fiveLevel.setText(map2.get("CRS_value"));
                                    }
                                     if (("stc:Address".equals(element))&&("cncrs:Individual").equals(parent_element)) {
                                         fiveLevel.addAttribute("legalAddressType", "OECD301");
                                        }else if (("stc:Address".equals(element))&&("cncrs:Organisation").equals(parent_element)) {
                                            fiveLevel.addAttribute("legalAddressType", "OECD301");
                                        }else if (("stc:Name".equals(element))&&("cncrs:Individual").equals(parent_element)) {
                                            fiveLevel.addAttribute("nameType", "OECD202");
                                        }else if (("stc:Name".equals(element))&&("cncrs:Organisation").equals(parent_element)) {
                                            fiveLevel.addAttribute("nameType", "OECD207");
                                        }else if (("stc:IN".equals(element))) {
                                            fiveLevel.addAttribute("issuedBy", " ");
                                            fiveLevel.addAttribute("inType", "TIN");
                                        }
                                     
                                     sql = "select * from crs_table where CRS_LEVEL='6' and CRS_PARENT_ID = '"+id+"'";
                                     List<?> list5 = dao.queryWithJDBC(sql);
                                         for (int e = 0; e<list5.size(); e++) {
                                              map = (Map<String, String>) list5.get(e);
                                             id = map.get("CRS_ID");
                                             System.out.println(id);
                                             element = map.get("CRS_ELEMENT");
                                             parent_element = map.get("CRS_PARENT_ELEMENT");
                                             String sql6 = "select crs_value from crs_value where CRS_ELEMENT = '"+element+"' and CRS_PARENT_ELEMENT = '"+parent_element+"' and CRS_LEVEL='6'";
                                             map2 = (Map<String, String>) dao.queryWithJDBC(sql6).get(0);
                                             Element sixLevel = fiveLevel.addElement(element);
                                             if (map2.get("CRS_value") != null) {
                                                 sixLevel.setText(map2.get("CRS_value"));
                                            }
                                             if (("stc:IN".equals(element))) {
                                                 sixLevel.addAttribute("issuedBy", " ");
                                                 sixLevel.addAttribute("inType", "TIN");
                                                }
                                             sql = "select * from crs_table where CRS_LEVEL='7' and CRS_PARENT_ID = '"+id+"'";
                                             List<?> list6 = dao.queryWithJDBC(sql);
                                                 for (int f = 0; f<list6.size(); f++) {
                                                      map = (Map<String, String>) list6.get(f);
                                                     id = map.get("CRS_ID");
                                                     System.out.println(id);
                                                     element = map.get("CRS_ELEMENT");
                                                     parent_element = map.get("CRS_PARENT_ELEMENT");
                                                     String sql7 = "select crs_value from crs_value where CRS_ELEMENT = '"+element+"' and CRS_PARENT_ELEMENT = '"+parent_element+"' and CRS_LEVEL='7'";
                                                     map2 = (Map<String, String>) dao.queryWithJDBC(sql7).get(0);
                                                     Element sevenLevel = sixLevel.addElement(element);
                                                     if (map2.get("CRS_value") != null) {
                                                         sevenLevel.setText(map2.get("CRS_value"));
                                                    }
                                                     sql = "select * from crs_table where CRS_LEVEL='8' and CRS_PARENT_ID = '"+id+"'";
                                                     List<?> list7 = dao.queryWithJDBC(sql);
                                                         for (int g = 0; g<list7.size(); g++) {
                                                              map = (Map<String, String>) list7.get(g);
                                                             id = map.get("CRS_ID");
                                                             System.out.println(id);
                                                             element = map.get("CRS_ELEMENT");
                                                             parent_element = map.get("CRS_PARENT_ELEMENT");
                                                             String sql8 = "select crs_value from crs_value where CRS_ELEMENT = '"+element+"' and CRS_PARENT_ELEMENT = '"+parent_element+"' and CRS_LEVEL='8'";
                                                             map2 = (Map<String, String>) dao.queryWithJDBC(sql8).get(0);
                                                             Element eightLevel = sevenLevel.addElement(element);
                                                             if (map2.get("CRS_value") != null) {
                                                                 eightLevel.setText(map2.get("CRS_value"));
                                                            }
                                                             
                                                         }
                                                 }
                                         }
                                 }
                         }
                 }
         }
     }
回答
編輯回答
旖襯

這里不是用遞歸替換循環(huán)的問題…
是需要抽方法加類型的問題

2017年3月20日 15:01