2013-05-03 3 views
0

Я хочу получить данные в своем xml с ее связанными дополнительными данными: например, я хочу взять все имя3 в категории 2 и все имя5, которые находятся в этом имени3 и все имя7, которые находятся в этом имени5 и т. д.Получите все данные и вспомогательные данные complexe xml организованным способом

В настоящее время я знаю только, как получить все имя3, все имя 5 и все имя7, но я не знаю, кто с кем связан.

Если вам нужна дополнительная информация, спросите меня.

Благодарим за помощь.

EDIT

Я попытался это для отбора данных:

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()); 
    } 
} 

, но в каждом меню item У меня есть все мое подменю item

ответ

0

I наконец, получил решение шахтной ПРОБЛЕМЫ:

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 подсчитать, как каждый элемент имеет дочерний элемент и имел их.

Если вам нужна дополнительная информация/точность, просто попросите.