2012-07-29 5 views
0

나는 다음과 같은 XML은XML 구문 분석 : XML을 구문 분석 할 수 없음 제대로

<toplevel> 
<CompleteSuggestion> 
<suggestion data="rahm emanuel"/> 
<num_queries int="6350000"/> 
</CompleteSuggestion> 
<CompleteSuggestion> 
<suggestion data="raheem devaughn"/> 
<num_queries int="2130000"/> 
</CompleteSuggestion> 
<CompleteSuggestion> 
<suggestion data="rahat fateh ali khan"/> 
<num_queries int="9020000"/> 
</CompleteSuggestion> 
<CompleteSuggestion> 
<suggestion data="rahab"/> 
<num_queries int="1690000"/> 
</CompleteSuggestion> 
<CompleteSuggestion> 
<suggestion data="rahr brewery"/> 
<num_queries int="113000"/> 
</CompleteSuggestion> 
<CompleteSuggestion> 
<suggestion data="rahsaan patterson"/> 
<num_queries int="472000"/> 
</CompleteSuggestion> 
<CompleteSuggestion> 
<suggestion data="rahul gandhi"/> 
<num_queries int="14600000"/> 
</CompleteSuggestion> 
<CompleteSuggestion> 
<suggestion data="rah digga"/> 
<num_queries int="1180000"/> 
</CompleteSuggestion> 
<CompleteSuggestion> 
<suggestion data="rahxephon"/> 
<num_queries int="1660000"/> 
</CompleteSuggestion> 
<CompleteSuggestion> 
<suggestion data="rahway nj"/> 
<num_queries int="3690000"/> 
</CompleteSuggestion> 
</toplevel> 

이 구글 API의 출력은있다. 내 안드로이드 애플 리케이션에서 구문 분석하려고합니다. DOM을 사용하여 구문 분석하고 있습니다. 다음 코드가 있습니다.

Document doc = null; 
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
    try { 

     DocumentBuilder db = dbf.newDocumentBuilder(); 

     InputSource is = new InputSource(); 
     is.setCharacterStream(new StringReader(xml)); 
     doc = db.parse(is); 

    } 

    Element root = doc.getDocumentElement(); 

    NodeList nl = doc.getElementsByTagName("CompleteSuggestion"); 

    for (int i = 0; i < nl.getLength(); i++) { 
     Element suggestion = (Element)nl.item(i); 
     String name = suggestion.getAttribute("suggestion"); 
     System.out.println(name); 
    } 

올바른 속성 값을 가져올 수 없습니다. 그 때마다 비어 있습니다.

Thx! rahul.

+0

String name = suggestion.getAttribute ("data"); 맞춰서 –

답변

0

제안은 요소가 아닌 속성이며, 데이터는 요소 제안의 특성입니다. 사용 :

for (int i = 0; i < nl.getLength(); i++) { 
     Element c_suggestion = (Element)nl.item(i); 
     Element suggestion = c_suggestion.getElementsByTagName("Suggestion") 
     String name = suggestion.getAttribute("data"); 
     System.out.println(name); 
    }