2014-04-23 2 views
0
나는 아래의 XML 파싱에 대한 해결책을 찾고

안녕 친구 내 데이터베이스 샘플입니다 : -얻기 데이터

 <inneritem id="1" title="Cells" thumbnail=""> 
      <Seconditem id="3" title="Intro" thumbnail="" /> 
      <Seconditem id="4" title="Erythroc" thumbnail="" /> 
      <Seconditem id="5" title="Band Nerophil" thumbnail="" /> 
      <Seconditem id="6" title="Segmented Ntrophil" thumbnail="" /> 
      <Seconditem id="7" title="Eosinil" thumbnail="" /> 
     </inneritem> 

     <inneritem id="2" title="Cells" thumbnail=""> 
      <Seconditem id="8" title="2Intro" thumbnail="" /> 
      <Seconditem id="9" title="2Erythroc" thumbnail="" /> 
      <Seconditem id="10" title="2Band Nerophil" thumbnail="" /> 
      <Seconditem id="11" title="2Segmented Ntrophil" thumbnail="" /> 
      <Seconditem id="12" title="2Eosinil" thumbnail="" /> 
     </inneritem> 
현재 이곳에

내가 ID 1 항목을 설정했고, 2 listview에서 그리고 예를 들어 어떤 항목을 클릭하면 ID 1을 가진 Item을 클릭하면 ID 1을주고 클릭시 ID 1과 관련된 tag Seconditem을 가진 데이터를 새 listview에로드하려고합니다. 어떻게하면됩니까? 그것을 성취하십시오. 미리 감사드립니다.

짧게는 ID의 조건을 확인한 다음 데이터를로드하여 이러한 조건을 검사 할 수 있습니다. 같은 내 코드는 다음과 같습니다 - 일치하는 데이터를 얻을 당신이 원하는 무엇이든 할 경우

  try { 

       InputStream is = getActivity().getAssets().open("public_material.xml"); 

       DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); 
       DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); 


       Document doc = dBuilder.parse(is); 
       doc.getDocumentElement().normalize(); 

       doc.getElementsByTagNameNS("id", ItemsID); 
       NodeList nList = doc.getElementsByTagName("Seconditem"); 
       Log.d("List count :- ", "" + nList.getLength()); 
       for (int temp = 0; temp < nList.getLength(); temp++) { 
        Node GetEementNode = nList.item(temp); 
        if (GetEementNode.getNodeType() == Node.ELEMENT_NODE) { 


         Element eElement = (Element) GetEementNode; 


         String strID = eElement.getAttribute("id"); 

         String Title = eElement.getAttribute("title"); 
         //String Thumbnail = eElement.getAttribute("thumbnail"); 


//      GetterSetter row = new GetterSetter(strID,Title, Thumbnail); 
         GetterSetter row = new GetterSetter(strID,Title); 
         arrList.add(row); 
        } 
       } 

      } catch (Exception e) { 

      } 

      BaseAdapterData data = new BaseAdapterData(getActivity(), arrList); 

      list2NewView.setAdapter(data); 

답변

1

이 내가 public_material는 데이터가 저장되어있는 내 XML 어디에 무엇을 찾고 있었다입니다 : -

try{InputStream is = getActivity().getAssets().open("public_material.xml"); 

        DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); 
        DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); 


        doc = dBuilder.parse(is); 
        doc.getDocumentElement().normalize(); 

        nList = doc.getElementsByTagName("inneritem"); 
        for (int temp = 0; temp < nList.getLength(); temp++) { 
         Node GetEementNode = nList.item(temp); 
         if (GetEementNode.getNodeType() == Node.ELEMENT_NODE) { 

          eElement = (Element) GetEementNode; 
          String strID = eElement.getAttribute("id"); 

          if(strID.equals(ItemsID)){ 
           NodeList conditionList = eElement.getElementsByTagName("Seconditem"); 

           for(int secondTemp = 0; secondTemp<conditionList.getLength();secondTemp++){ 
            Node getSecondNode = conditionList.item(secondTemp); 
            if(getSecondNode.getNodeType() == Node.ELEMENT_NODE){ 
             Element SecondElement = (Element) getSecondNode; 
             String secondItemsDataID = SecondElement.getAttribute("id"); 
             String secondItemsData = SecondElement.getAttribute("title"); 
             GetterSetter row = new GetterSetter(secondItemsDataID,secondItemsData); 
             arrList.add(row); 

            } 
           } 
          } 
    //      String Title = eElement.getAttribute("title"); 
          //String Thumbnail = eElement.getAttribute("thumbnail"); 


    //      GetterSetter row = new GetterSetter(strID,Title, Thumbnail); 
    //      GetterSetter row = new GetterSetter(strID,Title); 
    //      arrList.add(row); 
         } 
        } 

       } catch (Exception e) { 

       } 
0

목록보기의 클릭에이 ID를 얻고 루프에서 arrList.getStrId()과 비교하고 ....

+0

네, 그렇습니다. 그렇다면 목록 뷰 클릭에서 얻은 이드를 inneritem의 xml ID와 어떻게 비교할 수 있을까요? –

+0

또한 상위 ID를 포함하는 GetterSetter를 만들어 비교해보십시오 – Dhananjay

0

코드 아래에보십시오 :

list2NewView.setOnItemClickListener(new OnItemClickListener() 
     { 
      @Override 
      public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) 
      { 
        if(list2NewView.get(arg2).toString().equals(arrList.get(arg2).toString()) 
        { 
         // do your code here 
        } 
      } 
     });