2013-05-03 64 views
0

我想在我的xml中获取数据以及与其相关的子数据:例如,我想将所有名称3放在categorie2中,并将所有name5放在这个名称中3和所有名称7谁在这个名字5等...以组织方式获取complexe xml的所有数据和子数据

目前,我只知道如何获得所有name3,所有的名称5和所有的名称7,但我不知道谁与谁关联。

如果您需要更多信息,请问我。

感谢您的帮助。

编辑

我想这对于获取数据:

url3= new String(""); 
        xml3 = parser.getXmlFromUrl(url3); 
        Document doc3 = parser.getDomElement(xml3); 

        //System.out.println(xml); 

        menuBase = new ArrayList<HashMap<String, String>>(); 

        NodeList nodes = doc3.getElementsByTagName(KEY_CATEGORY_2); 
        for (int i = 0; i < nodes.getLength(); i++) { 

         HashMap<String, String> map = new HashMap<String, String>(); 
         Element element = (Element) nodes.item(i); 
         NodeList title = element.getElementsByTagName(KEY_NAME_3); 
         Element line = (Element) title.item(0); 

         map.put(KEY_NAME_3, getCharacterDataFromElement(line)); 

         menuBase.add(map); 
         menu1 = new ArrayList<ArrayList<HashMap<String, String>>>(); 

         ArrayList<HashMap<String, String>> map1 = new ArrayList<HashMap<String, String>>(); 
         NodeList n = doc3.getElementsByTagName(KEY_CATEGORY_4); 
         for (int y = 0; y < n.getLength(); y++) { 
          HashMap<String, String> map1bis = new HashMap<String, String>(); 
          Element e = (Element) n.item(y); 
          NodeList title1 = e.getElementsByTagName(KEY_NAME_5); 
          Element line1 = (Element) title1.item(0); 

          map1bis.put(KEY_NAME_5, getCharacterDataFromElement(line1)); 

          map1.add(map1bis); 


          menu1.add(map1); 

         } 

        } 

,然后我试图创建菜单和子菜单这样的:

for(int i=0;i<menuBase.size();i++){ 
    SubMenu x=menu.addSubMenu(menuBase.get(i).get(KEY_NAME_3).toString()); 
    for(int y=0;y<menu1.get(i).size();y++){ 
     SubMenu w=x.addSubMenu(menu1.get(i).get(y).get(KEY_NAME_5).toString()); 
    } 
} 

但在每个菜单项目我有我所有的子菜单项

回答

0

我终于得到了我的probleme的解决方案:

NodeList nodes = doc3.getElementsByTagName(KEY_CATEGORY_2); 
     int sum0=0;  
     for(int i=0;i<menuBase.size();i++){ 
      SubMenu x=menu.addSubMenu(changeToRegularForm(menuBase.get(i).get(KEY_NAME_3).toString())); 
       int count0 = ((Element)(nodes.item(i))).getElementsByTagName(KEY_CATEGORY_4).getLength(); 
       System.out.println(count0); 
       if(count0==0){ 
        /*x.findItem(i).set*/ 
       }else{ 
        for(int y=sum0;y<sum0+count0;y++){ 
        SubMenu w=x.addSubMenu(changeToRegularForm(menu1.get(y).get(KEY_NAME_5).toString())); 
       } 

       } 
       sum0+=count0; 
     } 

解释:最后我以一个arryList所有的子元素,但我使用fonction计算每个元素如何有子​​元素,并让他们。

如果您需要更多的信息/准确性,请索取。