2011-03-10 112 views
0
public class MyXMLHandler extends DefaultHandler { 

Boolean currentElement = false; 
String currentValue = null; 
public static SitesList sitesList = null; 

public static SitesList getSitesList() { 
    return sitesList; 
} 

public static void setSitesList(SitesList sitesList) { 
    MyXMLHandler.sitesList = sitesList; 
} 

/** Called when tag starts (ex:- <name>AndroidPeople</name> 
* -- <name>)*/ 
@Override 
public void startElement(String uri, String localName, String qName, 
     Attributes attributes) throws SAXException { 

    currentElement = true; 

    if (localName.equals("student_response")) 
    { 
     /** Start */ 
     sitesList = new SitesList(); 
     //sitesList.setquizno(currentValue); 
    } 

} 




/** Called when tag closing (ex:- <name>AndroidPeople</name> 
* -- </name>)*/ 
@Override 
public void endElement(String uri, String localName, String qName) 
     throws SAXException { 

    currentElement = false; 


    /** set value */ 

    if(localName.equalsIgnoreCase("quiz_one")) 
    { 

    if (localName.equalsIgnoreCase("quiz_no")) 
     sitesList.setquizno(currentValue); 
    //if(Integer.parseInt(sitesList.getquizno().get(Integer.parseInt(currentValue)))==1) 
    //{ 

    /*else if (localName.equalsIgnoreCase("subject")) 
     sitesList.setsubject(currentValue); 
    else if (localName.equalsIgnoreCase("grade")) 
     sitesList.setgrade(currentValue); 
    else*/else if (localName.equalsIgnoreCase("question_no")) 
     sitesList.setquestionno(currentValue); 
    else if (localName.equalsIgnoreCase("question")) 
      sitesList.setquestion(currentValue); 
     else if (localName.equalsIgnoreCase("option1")) 
      sitesList.setoption1(currentValue); 
     else if (localName.equalsIgnoreCase("option2")) 
      sitesList.setoption2(currentValue); 
     else if (localName.equalsIgnoreCase("option3")) 
       sitesList.setoption3(currentValue); 
      else if (localName.equalsIgnoreCase("option4")) 
       sitesList.setoption4(currentValue); 
      /*else if (localName.equalsIgnoreCase("option5")) 
       sitesList.setoption5(currentValue);*/ 
      else if (localName.equalsIgnoreCase("correct_answer")) 
       sitesList.setcorrectans(currentValue); 

      /*else if (localName.equalsIgnoreCase("explaination")) 
       sitesList.setdescription(currentValue); 
      else if (localName.equalsIgnoreCase("remark")) 
       sitesList.setremark(currentValue);*/ 
    } 
} 




/** Called to get tag characters (ex:- <name>AndroidPeople</name> 
* -- to get AndroidPeople Character) */ 
@Override 
public void characters(char[] ch, int start, int length) 
     throws SAXException { 

    if (currentElement) { 
     currentValue = new String(ch, start, length); 
     currentElement = false; 
    } 

} 

}顯示所選擇的數據,而XML解析在機器人

使用上述代碼我已經解析了在機器人xml文件。

以下是我的xml文件

<?xml version="1.0" encoding="ISO-8859-1"?> 
<student_response> 

<info> 

<quiz_one> 
<quiz_no>1</quiz_no> 
<subject>general</subject> 
<grade>A</grade> 

<all_question> 
<question_frame> 
<question_no>1</question_no> 
<question>What is capital of india ?</question> 
<option1>Delhi</option1> 
<option2>Mumbai</option2> 
<option3>Chennai</option3> 
<option4>Benglore</option4> 
<option5>Kolkata</option5> 
<correct_answer>Delhi</correct_answer> 
<explaination>Delhi is capital of india....</explaination> 
<remark>capital of india </remark> 
</question_frame> 

<question_frame> 
<question_no>2</question_no> 
<question>Who is the founder of facebook ?</question> 
<option1>James Goslings</option1> 
<option2>Dennis Ritchie</option2> 
<option3>Bjarne Stroustrup</option3> 
<option4>Brian Kernighan's</option4> 
<option5>Mark Zuckerberg</option5> 
<correct_answer>Mark Zuckerberg</correct_answer> 
<explaination>Mark Zuckerberg:facebook </explaination> 
<remark>facebook</remark> 
</question_frame> 


<question_frame> 
<question_no>3</question_no> 
<question>Who is the current prime minister of india ?</question> 
<option1>Pratibha patil</option1> 
<option2>Dr. Manmohan singh</option2> 
<option3>Rajiv Gandhi</option3> 
<option4>Atal bihari vajpayee</option4> 
<option5>Moraraji Desai</option5> 
<correct_answer>Dr. Manmohan singh</correct_answer> 
<explaination>Dr. Manmohan singh:current P.M. </explaination> 
<remark>Prime Minister</remark> 
</question_frame> 

<question_frame> 
<question_no>4</question_no> 
<question>What does EPROM stand for?</question> 
<option1>Electric Programmable Read Only Memory </option1> 
<option2>Erasable Programmable Read Only Memory </option2> 
<option3>Evaluable Philotic Random Optic Memory</option3> 
<option4>Every Person Requires One Mind</option4> 
<option5>Evaluable Philotic Random Optic Memory</option5> 
<correct_answer>Erasable Programmable Read Only Memory </correct_answer> 
<explaination>EPROM stand for Erasable Programmable Read Only Memory </explaination> 
<remark>EPROM</remark> 
</question_frame> 

<question_frame> 
<question_no>5</question_no> 
<question>Where is the headquarters of Microsoft located?</question> 
<option1>Santa Clara, California </option1> 
<option2>Tucson, Arizona </option2> 
<option3>Richmond, Virginia </option3> 
<option4>Redmond, Washington</option4> 
<option5>Tucson, Arizona </option5> 
<correct_answer>Santa Clara, California </correct_answer> 
<explaination>headquarters of Microsoft : Santa Clara, California </explaination> 
<remark>Microsoft</remark> 
</question_frame> 
</all_question> 
</quiz_one> 



<quiz_two> 

<quiz_no>2 </quiz_no> 
<subject>Other topic</subject> 
<grade>A</grade> 

<all_question> 
<question_frame> 
<question_no>1</question_no> 
<question>Who is the current prime minister of india ?</question> 
<option1>Pratibha patil</option1> 
<option2>Dr. Manmohan singh</option2> 
<option3>Rajiv Gandhi</option3> 
<option4>Atal bihari vajpayee</option4> 
<option5>Moraraji Desai</option5> 
<correct_answer>Dr. Manmohan singh</correct_answer> 
<explaination>Dr. Manmohan singh:current P.M. </explaination> 
<remark>Prime Minister</remark> 
</question_frame> 

<question_frame> 
<question_no>2</question_no> 
<question>What does EPROM stand for?</question> 
<option1>Electric Programmable Read Only Memory </option1> 
<option2>Erasable Programmable Read Only Memory </option2> 
<option3>Evaluable Philotic Random Optic Memory</option3> 
<option4>Every Person Requires One Mind</option4> 
<option5>Evaluable Philotic Random Optic Memory</option5> 
<correct_answer>Erasable Programmable Read Only Memory </correct_answer> 
<explaination>EPROM stand for Erasable Programmable Read Only Memory </explaination> 
<remark>EPROM</remark> 
</question_frame> 


<question_frame> 
<question_no>3</question_no> 
<question>Who is the founder of facebook ?</question> 
<option1>James Goslings</option1> 
<option2>Dennis Ritchie</option2> 
<option3>Bjarne Stroustrup</option3> 
<option4>Brian Kernighan's</option4> 
<option5>Mark Zuckerberg</option5> 
<correct_answer>Mark Zuckerberg</correct_answer> 
<explaination>Mark Zuckerberg:facebook </explaination> 
<remark>facebook</remark> 
</question_frame> 

<question_frame> 
<question_no>4</question_no> 
<question>Where is the headquarters of Microsoft located?</question> 
<option1>Santa Clara, California </option1> 
<option2>Tucson, Arizona </option2> 
<option3>Richmond, Virginia </option3> 
<option4>Redmond, Washington</option4> 
<option5>Tucson, Arizona </option5> 
<correct_answer>Santa Clara, California </correct_answer> 
<explaination>headquarters of Microsoft : Santa Clara, California </explaination> 
<remark>Microsoft</remark> 
</question_frame> 

<question_frame> 
<question_no>5</question_no> 
<question>What is capital of india ?</question> 
<option1>Delhi</option1> 
<option2>Mumbai</option2> 
<option3>Chennai</option3> 
<option4>Benglore</option4> 
<option5>Kolkata</option5> 
<correct_answer>Delhi</correct_answer> 
<explaination>Delhi is capital of india....</explaination> 
<remark>capital of india </remark> 
</question_frame> 
</all_question> 


</quiz_two> 

</info> 
</student_response> 

我的問題是如何從XML在Android的解析只有1個數據塊。從如果我想在時間我可怎麼辦去取只有1例競猜幫助it.Please我

回答

0

你可以添加元素到列表中的適配器和運行getAdapter().notifyDatasetChanged(),這將觸發列表刷新

0

如果我們希望從一個xml文件中提取數據,一旦我們必須移動到SAX,這是一次從上到下的讀取方法,並且如果我們想要在xml文件中隨機選擇數據,那麼DOM模型的樹代表是投入使用。 您可以使用DOM解析器來獲取您的代碼。好的