使用XmlPullParser把xml文件转换成java bean对象

要转换的.xml文件

<?xml version="1.0" encoding="gb2312"?>
<LESSON id="0">
<QUESTIONS type="拼音篇">
<QUESTION type='1'>
<TITLE>找出与所给拼音相对应的汉字。</TITLE>
<STEM>chēn许</STEM>
<OPTION>称</OPTION>
<OPTION>茫</OPTION>
<OPTION>涓</OPTION>
<OPTION>烁</OPTION>
<ANSWER>称</ANSWER>
</QUESTION>
<QUESTION type='2'>
<TITLE>给下列拼音选出正确的汉字。</TITLE>
<STEM>chēn</STEM>
<OPTION>称</OPTION>
<OPTION>贯</OPTION>
<OPTION>脉</OPTION>
<OPTION>怨</OPTION>
<ANSWER>称</ANSWER>
</QUESTION>
<QUESTION type='3'>
<TITLE>给下列汉字选出正确的读音。</TITLE>
<STEM>称</STEM>
<OPTION>chēn</OPTION>
<OPTION>hn</OPTION>
<OPTION>hū</OPTION>
<OPTION>jué</OPTION>
<ANSWER>chēn</ANSWER>
</QUESTION>
<QUESTION type='1'>
<TITLE>找出与所给拼音相对应的汉字。</TITLE>
<STEM>食yn</STEM>
<OPTION>盐</OPTION>
<OPTION>昂</OPTION>
<OPTION>帝</OPTION>
<OPTION>帷</OPTION>
<ANSWER>盐</ANSWER>
</QUESTION>
<QUESTION type='1'>
<TITLE>找出与所给拼音相对应的汉字。</TITLE>
<STEM>yn水</STEM>
<OPTION>盐</OPTION>
<OPTION>栽</OPTION>
<OPTION>魄</OPTION>
<OPTION>腾</OPTION>
<ANSWER>盐</ANSWER>
</QUESTION>
<QUESTION type='1'>
<TITLE>找出与所给拼音相对应的汉字。</TITLE>
<STEM>海yn</STEM>
<OPTION>盐</OPTION>
<OPTION>菌</OPTION>
<OPTION>遇</OPTION>
<OPTION>凌</OPTION>
<ANSWER>盐</ANSWER>
</QUESTION>
<QUESTION type='1'>
<TITLE>找出与所给拼音相对应的汉字。</TITLE>
<STEM>精yn</STEM>
<OPTION>盐</OPTION>
<OPTION>栽</OPTION>
<OPTION>训</OPTION>
<OPTION>率</OPTION>
<ANSWER>盐</ANSWER>
</QUESTION>
<QUESTION type='2'>
<TITLE>给下列拼音选出正确的汉字。</TITLE>
<STEM>yn</STEM>
<OPTION>盐</OPTION>
<OPTION>嘶</OPTION>
<OPTION>资</OPTION>
<OPTION>茎</OPTION>
<ANSWER>盐</ANSWER>
</QUESTION>
<QUESTION type='3'>
<TITLE>给下列汉字选出正确的读音。</TITLE>
<STEM>盐</STEM>
<OPTION>yn</OPTION>
<OPTION>bó</OPTION>
<OPTION>pin</OPTION>
<OPTION>fú</OPTION>
<ANSWER>yn</ANSWER>
</QUESTION>
<QUESTION type='1'>
<TITLE>找出与所给拼音相对应的汉字。</TITLE>
<STEM>lǒn罩</STEM>
<OPTION>笼</OPTION>
<OPTION>恐</OPTION>
<OPTION>振</OPTION>
<OPTION>训</OPTION>
<ANSWER>笼</ANSWER>
</QUESTION>
<QUESTION type='1'>
<TITLE>找出与所给拼音相对应的汉字。</TITLE>
<STEM>lǒn统</STEM>
<OPTION>笼</OPTION>
<OPTION>栽</OPTION>
<OPTION>杈</OPTION>
<OPTION>梢</OPTION>
<ANSWER>笼</ANSWER>
</QUESTION>
<QUESTION type='1'>
<TITLE>找出与所给拼音相对应的汉字。</TITLE>
<STEM>lǒn络</STEM>
<OPTION>笼</OPTION>
<OPTION>镢</OPTION>
<OPTION>蒙</OPTION>
<OPTION>昏</OPTION>
<ANSWER>笼</ANSWER>
</QUESTION>
<QUESTION type='2'>
<TITLE>给下列拼音选出正确的汉字。</TITLE>
<STEM>lǒn</STEM>
<OPTION>笼</OPTION>
<OPTION>恐</OPTION>
<OPTION>虎</OPTION>
<OPTION>蹲</OPTION>
<ANSWER>笼</ANSWER>
</QUESTION>
<QUESTION type='3'>
<TITLE>给下列汉字选出正确的读音。</TITLE>
<STEM>笼</STEM>
<OPTION>lǒn</OPTION>
<OPTION>dī</OPTION>
<OPTION>hui</OPTION>
<OPTION>shī</OPTION>
<ANSWER>lǒn</ANSWER>
</QUESTION>
<QUESTION type='1'>
<TITLE>找出与所给拼音相对应的汉字。</TITLE>
<STEM>笼zho</STEM>
<OPTION>罩</OPTION>
<OPTION>封</OPTION>
<OPTION>剧</OPTION>
<OPTION>奥</OPTION>
<ANSWER>罩</ANSWER>
</QUESTION>
<QUESTION type='1'>
<TITLE>找出与所给拼音相对应的汉字。</TITLE>
<STEM>外zho</STEM>
<OPTION>罩</OPTION>
<OPTION>洪</OPTION>
<OPTION>剩</OPTION>
<OPTION>扶</OPTION>
<ANSWER>罩</ANSWER>
</QUESTION>
<QUESTION type='2'>
<TITLE>给下列拼音选出正确的汉字。</TITLE>
<STEM>zho</STEM>
<OPTION>罩</OPTION>
<OPTION>瞰</OPTION>
<OPTION>凋</OPTION>
<OPTION>义</OPTION>
<ANSWER>罩</ANSWER>
</QUESTION>
<QUESTION type='3'>
<TITLE>给下列汉字选出正确的读音。</TITLE>
<STEM>罩</STEM>
<OPTION>zho</OPTION>
<OPTION>hn</OPTION>
<OPTION>pín</OPTION>
<OPTION>jin</OPTION>
<ANSWER>zho</ANSWER>
</QUESTION>
<QUESTION type='3'>
<TITLE>给下列汉字选出正确的读音。</TITLE>
<STEM>屹</STEM>
<OPTION>yì</OPTION>
<OPTION>nì</OPTION>
<OPTION>zhù</OPTION>
<OPTION>xī</OPTION>
<ANSWER>yì</ANSWER>
</QUESTION>
<QUESTION type='1'>
<TITLE>找出与所给拼音相对应的汉字。</TITLE>
<STEM>dǐn立</STEM>
<OPTION>鼎</OPTION>
<OPTION>峻</OPTION>
<OPTION>格</OPTION>
<OPTION>菌</OPTION>
<ANSWER>鼎</ANSWER>
</QUESTION>
<QUESTION type='2'>
<TITLE>给下列拼音选出正确的汉字。</TITLE>
<STEM>dǐn</STEM>
<OPTION>鼎</OPTION>
<OPTION>糊</OPTION>
<OPTION>昧</OPTION>
<OPTION>扶</OPTION>
<ANSWER>鼎</ANSWER>
</QUESTION>
<QUESTION type='3'>
<TITLE>给下列汉字选出正确的读音。</TITLE>
<STEM>鼎</STEM>
<OPTION>dǐn</OPTION>
<OPTION>yī</OPTION>
<OPTION>yo</OPTION>
<OPTION>zhí</OPTION>
<ANSWER>dǐn</ANSWER>
</QUESTION>
<QUESTION type='2'>
<TITLE>给下列拼音选出正确的汉字。</TITLE>
<STEM>bēn</STEM>
<OPTION>崩</OPTION>
<OPTION>旷</OPTION>
<OPTION>颐</OPTION>
<OPTION>搏</OPTION>
<ANSWER>崩</ANSWER>
</QUESTION>
<QUESTION type='3'>
<TITLE>给下列汉字选出正确的读音。</TITLE>
<STEM>崩</STEM>
<OPTION>bēn</OPTION>
<OPTION>jiǒn</OPTION>
<OPTION>rn</OPTION>
<OPTION>lin</OPTION>
<ANSWER>bēn</ANSWER>
</QUESTION>
</QUESTIONS>
<QUESTIONS type="字词篇">
<QUESTION type='4'>
<TITLE>选出所给字的偏旁部首。</TITLE>
<STEM>潮</STEM>
<OPTION>氵</OPTION>
<OPTION>言</OPTION>
<OPTION>页</OPTION>
<OPTION>艹</OPTION>
<ANSWER>氵</ANSWER>
</QUESTION>
<QUESTION type='5'>
<TITLE>选出能与所给字组词的一项。</TITLE>
<STEM>潮</STEM>
<OPTION>cho女</OPTION>
<OPTION>tn木</OPTION>
<OPTION>非fn</OPTION>
<OPTION>开pì</OPTION>
<ANSWER>cho女</ANSWER>
</QUESTION>
<QUESTION type='4'>
<TITLE>选出所给字的偏旁部首。</TITLE>
<STEM>称</STEM>
<OPTION>禾</OPTION>
<OPTION>刂</OPTION>
<OPTION>竹</OPTION>
<OPTION>月</OPTION>
<ANSWER>禾</ANSWER>
</QUESTION>
<QUESTION type='5'>
<TITLE>选出能与所给字组词的一项。</TITLE>
<STEM>称</STEM>
<OPTION>chēn许</OPTION>
<OPTION>xié调</OPTION>
<OPTION>zhú渐</OPTION>
<OPTION>rón毛</OPTION>
<ANSWER>chēn许</ANSWER>
</QUESTION>
<QUESTION type='4'>
<TITLE>选出所给字的偏旁部首。</TITLE>
<STEM>盐</STEM>
<OPTION>皿</OPTION>
<OPTION>扌</OPTION>
<OPTION></OPTION>
<OPTION>火</OPTION>
<ANSWER>皿</ANSWER>
</QUESTION>
<QUESTION type='5'>
<TITLE>选出能与所给字组词的一项。</TITLE>
<STEM>盐</STEM>
<OPTION>精yn</OPTION>
<OPTION>chēn为</OPTION>
<OPTION>qīn斜</OPTION>
<OPTION>洋yì</OPTION>
<ANSWER>精yn</ANSWER>
</QUESTION>
<QUESTION type='4'>
<TITLE>选出所给字的偏旁部首。</TITLE>
<STEM>笼</STEM>
<OPTION>竹</OPTION>
<OPTION>山</OPTION>
<OPTION>厂</OPTION>
<OPTION>禾</OPTION>
<ANSWER>竹</ANSWER>
</QUESTION>
<QUESTION type='5'>
<TITLE>选出能与所给字组词的一项。</TITLE>
<STEM>笼</STEM>
<OPTION>lǒn络</OPTION>
<OPTION>堡lěi</OPTION>
<OPTION>po球</OPTION>
<OPTION>风mǐ</OPTION>
<ANSWER>lǒn络</ANSWER>
</QUESTION>
<QUESTION type='4'>
<TITLE>选出所给字的偏旁部首。</TITLE>
<STEM>罩</STEM>
<OPTION>罒</OPTION>
<OPTION>目</OPTION>
<OPTION>讠</OPTION>
<OPTION>氵</OPTION>
<ANSWER>罒</ANSWER>
</QUESTION>
<QUESTION type='5'>
<TITLE>选出能与所给字组词的一项。</TITLE>
<STEM>罩</STEM>
<OPTION>外zho</OPTION>
<OPTION>灵hún</OPTION>
<OPTION>退cho</OPTION>
<OPTION>程kòn</OPTION>
<ANSWER>外zho</ANSWER>
</QUESTION>
<QUESTION type='4'>
<TITLE>选出所给字的偏旁部首。</TITLE>
<STEM>蒙</STEM>
<OPTION>艹</OPTION>
<OPTION></OPTION>
<OPTION>广</OPTION>
<OPTION>辶</OPTION>
<ANSWER>艹</ANSWER>
</QUESTION>
<QUESTION type='5'>
<TITLE>选出能与所给字组词的一项。</TITLE>
<STEM>蒙</STEM>
<OPTION>启mén</OPTION>
<OPTION>zhèn奋</OPTION>
<OPTION>mó杖</OPTION>
<OPTION>uì树</OPTION>
<ANSWER>启mén</ANSWER>
</QUESTION>
<QUESTION type='4'>
<TITLE>选出所给字的偏旁部首。</TITLE>
<STEM>薄</STEM>
<OPTION>艹</OPTION>
<OPTION>扌</OPTION>
<OPTION>穴</OPTION>
<OPTION>宀</OPTION>
<ANSWER>艹</ANSWER>
</QUESTION>
<QUESTION type='5'>
<TITLE>选出能与所给字组词的一项。</TITLE>
<STEM>薄</STEM>
<OPTION>轻bó</OPTION>
<OPTION>rón毛</OPTION>
<OPTION>洗shù</OPTION>
<OPTION>灿ln</OPTION>
<ANSWER>轻bó</ANSWER>
</QUESTION>
</LESSON>

要转换成的数据类型:

==============================GameQuestion

public class GameQuestion {
public int type = 0;
public String TITLE = null;
public String STEM = null;
public List<String> OPTION = new ArrayList<String>();
public String ANSWER = null;


public int getType() {
return type;
}


public void setType(int type) {
this.type = type;
}


public String getTITLE() {
return TITLE;
}


public void setTITLE(String TITLE) {
this.TITLE = TITLE;
}


public String getSTEM() {
return STEM;
}


public void setSTEM(String STEM) {
this.STEM = STEM;
}


public List<String> getOPTION() {
return OPTION;
}


public void setOPTION(List<String> OPTION) {
this.OPTION = OPTION;
}


public String getANSWER() {
return ANSWER;
}


public void setANSWER(String ANSWER) {
this.ANSWER = ANSWER;
}


public void addOption( String oneOption){


OPTION.add(oneOption);
}


@Override
public String toString() {
return "GameQuestion{" +
"type=" + type +
",TITLE='" + TITLE + '\'' +
",STEM='" + STEM + '\'' +
",OPTION=" + OPTION +
",ANSWER='" + ANSWER + '\'' +
'}';
}
}

==============================GameQuestions

public class GameQuestions {
public ArrayList<GameQuestion> questionList = new ArrayList<GameQuestion>();
public String type;


public void setType(String type){
this.type = type;
}


public String getType(){
return this.type;
}


public void setGameQuestions( ArrayList<GameQuestion> questionList){
this.questionList = questionList;
}

public ArrayList<GameQuestion> getGameQuestions(){
return this.questionList;
}


public void add(GameQuestion gameQuestion){
this.questionList.add(gameQuestion);
}


@Override
public String toString() {
return "GameQuestions{" +
"questionList=" + questionList +
",type='" + type + '\'' +
'}';
}
}

==========================================================GameXmlBean

public class GameXmlBean {
String lessonId;
ArrayList<GameQuestions> questionsList;


public String getLessonId() {
return lessonId;
}


public void setLessonId(String lessonId) {
this.lessonId = lessonId;
}




public ArrayList<GameQuestions> getQuestionList() {
return questionsList;
}


public void setQuestionList(ArrayList<GameQuestions> questionsList) {
this.questionsList = questionsList;
}


public void AddsetQuestionList(GameQuestions gameQuestions){
this.questionsList.add(gameQuestions);
}


@Override
public String toString() {
return "GameXmlBean{" +
"lessonId='" + lessonId + '\'' +
",questionsList=" + questionsList +
'}';
}
}

转换的函数代码:

public static GameXmlBean parseXML(Context context,String fileName) throws XmlPullParserException,IOException { GameXmlBean gameXmlBean = new GameXmlBean(); ArrayList<GameQuestions> Questions = new ArrayList<GameQuestions>(); GameQuestion onequestion = null; GameQuestions oneQuestons = null; InputStream in = null; XmlPullParser pullParser = Xml.newPullParser(); try { in = new FileInputStream(new File(fileName)); } catch (Exception e) { e.printStackTrace(); } if (null == in) { Toast.makeText(context,"请检查数据",Toast.LENGTH_SHORT).show(); return null; } try { pullParser.setInput(in,"gb2312"); } catch (XmlPullParserException e) { e.printStackTrace(); } int event = pullParser.getEventType(); while (event != XmlPullParser.END_DOCUMENT) { switch (event) { case XmlPullParser.START_DOCUMENT: Log.d("liudezu","XmlPullParser.START_DOCUMENT"); break; case XmlPullParser.START_TAG: String pullName = pullParser.getName(); if (HEAD_LESSON.equals(pullName)) { String id = new String(pullParser.getAttributeValue("","id")); gameXmlBean.setLessonId(id); Log.d("liudezu",pullName+":id = "+ id); } else if (HEAD_QUESTIONS.equals(pullParser.getName())) { oneQuestons = new GameQuestions(); String Type = new String(pullParser.getAttributeValue(0)); oneQuestons.setType(Type); Log.d("liudezu",HEAD_QUESTIONS +":type = "+ Type); } else if (CONTENT_QUESTION.equals(pullParser.getName())) { onequestion = new GameQuestion(); int type = new Integer(new String(pullParser.getAttributeValue(0))); onequestion.setType(type); Log.d("liudezu",CONTENT_QUESTION +":type = "+ type); } else if (CONTENT_TITLE.equals(pullParser.getName())) { pullParser.next(); String title = pullParser.getText(); onequestion.setTITLE(title); Log.d("liudezu","TITLE:" + title); } else if (CONTENT_STEM.equals(pullParser.getName())) { pullParser.next(); onequestion.setSTEM(pullParser.getText()); Log.d("liudezu","STEM:" + pullParser.getText()); } else if (CONTENT_OPTION.equals(pullParser.getName())) { pullParser.next(); onequestion.addOption(pullParser.getText()); Log.d("liudezu","Option:" + pullParser.getText()); } else if (CONTENT_ANSWER.equals(pullParser.getName())) { pullParser.next(); onequestion.setANSWER(pullParser.getText()); Log.d("liudezu","ANSWER:" + pullParser.getText()); } break; case XmlPullParser.TEXT: break; case XmlPullParser.END_TAG: if (HEAD_QUESTIONS.equals(pullParser.getName())) { Log.d("liudezu","HEAD_QUESTIONS.END_TAG"); Questions.add(oneQuestons); oneQuestons = null; } else if (CONTENT_QUESTION.equals(pullParser.getName())) { Log.d("liudezu","CONTENT_QUESTION.END_TAG"); Log.d("liudezu",onequestion.toString()); oneQuestons.add(onequestion); onequestion = null; }else { Log.d("liudezu","XmlPullParser.END_TAG"); } break; default: Log.d("zcl","parseXML: error"); break; } event = pullParser.next(); Log.d("liudezu","event = "+event); } Log.d("liudezu","pullParser========over"); gameXmlBean.setQuestionList(Questions); return gameXmlBean; }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇