1解析的xml如下
gxzw.xml



<问答1 title="一般抵押权首次登记" content="一、申请材料n" />

2application中进行解析

public static ArrayList<GxzwItem> gxzwdata = new ArrayList<GxzwItem>();

//将sd卡中xml的内容解析到内存中
private static void initQxzwData() {
// TODO Auto-generated method stub
String path = null;
Log.e("wy", "初始化gxzw");
try {
if (Store.getLanguageLocal(navContext).equals("en")) {
Log.e("wy", "初始化英文版gxzw");
path = "/mnt/sdcard/leotech/settings/qa_en.xml";
} else {
Log.e("wy", "初始化中文版gxzw");
path = "/mnt/sdcard/leotech/settings/gxzw.xml";
}

FileInputStream is = new FileInputStream(new File(path));
SpeechClientApp.gxzwdata.clear();
//至此完成xml的内容向内存实体类的转化
SpeechClientApp.gxzwdata = GxzwParser.getInstance(navContext).readQAXml(is);
Log.e("wy", "gxzwdata内容" + gxzwdata.toString());
Log.e("wy", "gxzwdata.isize=" + gxzwdata.size());
} catch (Exception e) {

}
}

3xml解析类:使用了XmlPullParser类进行了解析

public class GxzwParser {
private final static String TAG = GxzwParser.class.getSimpleName();
private Context mContext;

public GxzwParser(Context context){
mContext = context;
}

private static GxzwParser instance=null;

public static GxzwParser getInstance(Context context){
if(instance ==null){
instance = new GxzwParser(context);
}
return instance;
}

public ArrayList<GxzwItem> readQAXml(InputStream is){

ArrayList<GxzwItem> items = new ArrayList<GxzwItem>();

items=parseGxzwXml(is);
Log.v(TAG,"items="+items.size());
return items;
}



private ArrayList<GxzwItem> parseGxzwXml(InputStream is) {
// TODO 自动生成的方法存根
XmlPullParser parser = Xml.newPullParser();
ArrayList<GxzwItem> items = new ArrayList<GxzwItem>();
int eventType;
String name= null;
try {
parser.setInput(is, "UTF-8");

eventType = parser.getEventType();
while(eventType!=XmlPullParser.END_DOCUMENT){
switch(eventType){
case XmlPullParser.START_DOCUMENT:
break;
case XmlPullParser.START_TAG:
name = parser.getName();

if(name.equalsIgnoreCase("config")){

}else{

GxzwItem item = new GxzwItem();
String title =parser.getAttributeValue(null, "title");
String content =parser.getAttributeValue(null, "content");
String quest =parser.getAttributeValue(null, "question");
String answer =parser.getAttributeValue(null, "answer");
String valid =parser.getAttributeValue(null, "valid");
String xml =parser.getAttributeValue(null, "xml");
String dest =parser.getAttributeValue(null, "dest");
String action =parser.getAttributeValue(null, "action");
String url =parser.getAttributeValue(null, "url");
String activity =parser.getAttributeValue(null, "activity");
String menu1 =parser.getAttributeValue(null, "menu1");
String menu2 =parser.getAttributeValue(null, "menu2");
String map =parser.getAttributeValue(null, "map");
String web =parser.getAttributeValue(null, "web");
Log.v(TAG,"name-"+name+" quest="+quest+" answer="+answer+" xml="+xml+" valid="+valid+" dest="+dest
+" action="+action+" url="+url+" activity="+activity+" menu1="+menu1+" menu2="+menu2
+" map="+map+" web="+web);
Log.e("wy","title:"+title+"content"+content+"name="+name+" quest="+quest+" answer="+answer+" xml="+xml+" valid="+valid+" dest="+dest
+" action="+action+" url="+url+" activity="+activity+" menu1="+menu1+" menu2="+menu2
+" map="+map+" web="+web);
//通过实体类的set访问把解析到的xml配置属性替换原先默认的属性
item.setTitle(title);
item.setContent(content);
item.setName(name);
item.setQuestion(quest);
item.setAnswer(answer);
item.setXml(xml);
item.setValid(valid);
item.setDest(dest);
item.setAction(action);
item.setUrl(url);
item.setActivity(activity);
item.setMenu1(menu1);
item.setMenu2(menu2);
item.setmMap(map);
item.setmWeb(web);
items.add(item);
}
break;
case XmlPullParser.END_TAG:
break;

}
eventType=parser.next();
}
is.close();
return items;
} catch (XmlPullParserException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
Log.v("wy","e2="+e);
showErrorLine(name);
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
Log.v("wy","e1="+e);
}
return null;


}

private void showErrorLine(final String name){
Log.d("wy", "qa解析错误,在 <"+name+"> 这一行或者下一行");
}

}

4 具体的对应实体类:只用到了title和content两个属性

public class GxzwItem {
private String title;
private String content;
private String name;
private String mQuestion = null;
private String mAnswer = null;
private String mXml = null;
private String mValid= null;
private String mDest = null;
private String mAction= null;
private String mUrl = null;
private String mActivity= null;
private String mMenu1 = null;
private String mMenu2= null;
private String mMap= null;
private String mWeb= null;



public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getmWeb() {
return mWeb;
}
public void setmWeb(String mWeb) {
this.mWeb = mWeb;
}
public String getmMap() {
return mMap;
}
public void setmMap(String mMap) {
this.mMap = mMap;
}
public void setName(String nameString){
name= nameString;
}
public String getName(){
return name;
}
public void setQuestion(String quest){
mQuestion = quest;
}

public String getQuestion(){
return mQuestion;
}
public void setAnswer(String answer){
mAnswer = answer;
}

public String getAnswer(){
return mAnswer;
}
public void setXml(String xml){
mXml = xml;
}

public String getXml(){
return mXml;
}
public void setDest(String dest){
mDest = dest;
}

public String getDest(){
return mDest;
}
public String getAction(){
return mAction;
}
public void setAction(String action){
mAction = action;
}

public String getUrl(){
return mUrl;
}
public void setUrl(String Url){
mUrl = Url;
}
public void setValid(String valid){
mValid = valid;
}
public String getValid(){
return mValid;
}
public void setActivity(String name){
mActivity = name;
}
public String getActivity(){
return mActivity;
}
public void setMenu1(String name){
mMenu1 = name;
}
public String getMenu1(){
return mMenu1;
}
public void setMenu2(String name){
mMenu2 = name;
}
public String getMenu2(){
return mMenu2;
}
}

5具体调用:核心代码

mTitle=SpeechClientApp.gxzwdata.get(10).getTitle();
// 换行,去空格
mContentAct=SpeechClientApp.gxzwdata.get(10).getContent().replace("n", "\n").replace(" ", "");

全代码

public class XZSPActivity extends WyBaseActivity implements RadioGroup.OnCheckedChangeListener {
private TextView mGxzwTv;
private TextView mGxzwTvTitle;
private String mTitle;
private String mTitle1;
private String mTitle2;
private String mTitle3;
private String mTitle4;
private String mTitle5;
private String mTitle6;
private String mTitle7;
private String mTitle8;
private String mTitle9;

private String mContent;
private String mContentAct;
private String mContentAct1;
private String mContentAct2;
private String mContentAct3;
private String mContentAct4;
private String mContentAct5;
private String mContentAct6;
private String mContentAct7;
private String mContentAct8;
private String mContentAct9;
private RadioGroup rgNavi;
private RelativeLayout mRelativeLayout;
private RadioButton mRBqxn;
private RadioButton mRBqxn1;
private RadioButton mRBqxn2;
private RadioButton mRBqxn3;
private RadioButton mRBqxn4;
private RadioButton mRBqxn5;
private RadioButton mRBqxn6;
private RadioButton mRBqxn7;
private RadioButton mRBqxn8;
private RadioButton mRBqxn9;
private RadioButton rbNaviDingdan;
private RadioButton rbNaviGerenxinxi;
// private ImageView daijie_img, yijie_img, shuxin;
private ImageView img_gxzw;
private long temptime = 0;

public void onClick(View v){
switch (v.getId()) {

case R.id.btn_evaluate_home:
Intent intent = new Intent(this, SpeechMainActivity.class);
startActivity(intent);
break;
case R.id.layout_home_activity_root:
Log.e("wy", "点击了全局");
SpeechTools.delayToReturn();
break;
case R.id.rg_navi:
Log.e("wy", "点击了RadioGroup");
SpeechTools.delayToReturn();
break;
case R.id.sv_content:
Log.e("wy", "点击了scrollview");
SpeechTools.delayToReturn();
break;


default:
Log.e("wy", "重新计时退出");
SpeechTools.delayToReturn();
break;
}
}
@Override
public int setRootView() {
return R.layout.activity_xzsp;
}
@Override
public void initViews() {

mRelativeLayout = (RelativeLayout) findViewById(R.id.layout_home_activity_root);
rgNavi = (RadioGroup) findViewById(R.id.rg_navi);
rgNavi.setOnCheckedChangeListener( this);
mRBqxn = (RadioButton) findViewById(R.id.rb_quanxiannei);
mRBqxn1 = (RadioButton) findViewById(R.id.rb_teshucheliang);
mRBqxn2 = (RadioButton) findViewById(R.id.rb_gongreqiye);
mRBqxn3 = (RadioButton) findViewById(R.id.rb_gongrejingying);
mRBqxn4 = (RadioButton) findViewById(R.id.rb_ranqijingying);
mRBqxn5 = (RadioButton) findViewById(R.id.rb_yanhuabaozhu);
mRBqxn6 = (RadioButton) findViewById(R.id.rb_fangwujianzhu);
mRBqxn7 = (RadioButton) findViewById(R.id.rb_chengshigongre);
mRBqxn8 = (RadioButton) findViewById(R.id.rb_xinzengyongshui);
mRBqxn9 = (RadioButton) findViewById(R.id.rb_yuanlingongcheng);
// img_gxzw=(ImageView) findViewById(R.id.img_gxzw);
mGxzwTv=(TextView)findViewById(R.id.tv_gxzw);
mGxzwTvTitle=(TextView)findViewById(R.id.tv_estatetitle);

mTitle=SpeechClientApp.gxzwdata.get(10).getTitle();
mTitle1=SpeechClientApp.gxzwdata.get(11).getTitle();
mTitle2=SpeechClientApp.gxzwdata.get(12).getTitle();
mTitle3=SpeechClientApp.gxzwdata.get(13).getTitle();
mTitle4=SpeechClientApp.gxzwdata.get(14).getTitle();
mTitle5=SpeechClientApp.gxzwdata.get(15).getTitle();
mTitle6=SpeechClientApp.gxzwdata.get(16).getTitle();
mTitle7=SpeechClientApp.gxzwdata.get(17).getTitle();
mTitle8=SpeechClientApp.gxzwdata.get(18).getTitle();
mTitle9=SpeechClientApp.gxzwdata.get(19).getTitle();
// mContent=SpeechClientApp.gxzwdata.get(0).getContent();
Log.e("wy", "获取到xml的answer"+mTitle);
// Log.e("wy", "获取到xml"+mContent);
// 换行,去空格
mContentAct=SpeechClientApp.gxzwdata.get(10).getContent().replace("n", "\n").replace(" ", "");
mContentAct1=SpeechClientApp.gxzwdata.get(11).getContent().replace("n", "\n").replace(" ", "");
mContentAct2=SpeechClientApp.gxzwdata.get(12).getContent().replace("n", "\n").replace(" ", "");
mContentAct3=SpeechClientApp.gxzwdata.get(13).getContent().replace("n", "\n").replace(" ", "");
mContentAct4=SpeechClientApp.gxzwdata.get(14).getContent().replace("n", "\n").replace(" ", "");
mContentAct5=SpeechClientApp.gxzwdata.get(15).getContent().replace("n", "\n").replace(" ", "");
mContentAct6=SpeechClientApp.gxzwdata.get(16).getContent().replace("n", "\n").replace(" ", "");
mContentAct7=SpeechClientApp.gxzwdata.get(17).getContent().replace("n", "\n").replace(" ", "");
mContentAct8=SpeechClientApp.gxzwdata.get(18).getContent().replace("n", "\n").replace(" ", "");
mContentAct9=SpeechClientApp.gxzwdata.get(19).getContent().replace("n", "\n").replace(" ", "");
Log.e("wy", "获取到mXmlAct:"+mContentAct);
// mContent="申报材料\n1、申报文书";
mRBqxn.setText(mTitle);
mRBqxn1.setText(mTitle1);
mRBqxn2.setText(mTitle2);
mRBqxn3.setText(mTitle3);
mRBqxn4.setText(mTitle4);
mRBqxn5.setText(mTitle5);
mRBqxn6.setText(mTitle6);
mRBqxn7.setText(mTitle7);
mRBqxn8.setText(mTitle8);
mRBqxn9.setText(mTitle9);



mGxzwTvTitle.setText(mTitle);
mGxzwTv.setText(mContentAct);

}
@Override
public void onCheckedChanged(RadioGroup mRadioGroup, int mI) {
switch (mI){//switch...case事件把RadioButton底部导航栏与对应的Fragment联系起来了
case R.id.rb_quanxiannei:
Log.e("wy", "点击了第一个RudioButton");
SpeechTools.delayToReturn();
mGxzwTvTitle.setText(mTitle);
mGxzwTv.setText(mContentAct);
// showFrag(mHomeFragment);
// img_gxzw.setImageResource(R.drawable.ic_65);
break;
case R.id.rb_teshucheliang:
SpeechTools.delayToReturn();
mGxzwTvTitle.setText(mTitle1);
mGxzwTv.setText(mContentAct1);
break;
case R.id.rb_gongreqiye:
mGxzwTvTitle.setText(mTitle2);
mGxzwTv.setText(mContentAct2);
break;
case R.id.rb_gongrejingying:
mGxzwTvTitle.setText(mTitle3);
mGxzwTv.setText(mContentAct3);
break;
case R.id.rb_ranqijingying:
mGxzwTvTitle.setText(mTitle4);
mGxzwTv.setText(mContentAct4);
break;
case R.id.rb_yanhuabaozhu:
mGxzwTvTitle.setText(mTitle5);
mGxzwTv.setText(mContentAct5);
break;
case R.id.rb_fangwujianzhu:
mGxzwTvTitle.setText(mTitle6);
mGxzwTv.setText(mContentAct6);
break;
case R.id.rb_chengshigongre:
mGxzwTvTitle.setText(mTitle7);
mGxzwTv.setText(mContentAct7);
break;
case R.id.rb_xinzengyongshui:
mGxzwTvTitle.setText(mTitle8);
mGxzwTv.setText(mContentAct8);
break;
case R.id.rb_yuanlingongcheng:
mGxzwTvTitle.setText(mTitle9);
mGxzwTv.setText(mContentAct9);
break;

}

}
@Override
public void initDatas() {
String answer = getIntent().getStringExtra("answer");
if (answer != null) {
SpeechTools.speak(answer);
}else {
mRBqxn.setChecked(true);
}
int menu1= getIntent().getIntExtra("menu1", 0);
switch (menu1) {
case 0:
mRBqxn.setChecked(true);
mGxzwTvTitle.setText(mTitle);
mGxzwTv.setText(mContentAct);
break;
case 1:
mRBqxn1.setChecked(true);
mGxzwTvTitle.setText(mTitle1);
mGxzwTv.setText(mContentAct1);
break;
case 2:
mRBqxn2.setChecked(true);
mGxzwTvTitle.setText(mTitle2);
mGxzwTv.setText(mContentAct2);
break;
case 3:
mRBqxn3.setChecked(true);
mGxzwTvTitle.setText(mTitle3);
mGxzwTv.setText(mContentAct3);
break;
case 4:
mRBqxn4.setChecked(true);
mGxzwTvTitle.setText(mTitle4);
mGxzwTv.setText(mContentAct4);
break;
case 5:
mRBqxn5.setChecked(true);
mGxzwTvTitle.setText(mTitle5);
mGxzwTv.setText(mContentAct5);
break;
case 6:
mRBqxn6.setChecked(true);
mGxzwTvTitle.setText(mTitle6);
mGxzwTv.setText(mContentAct6);
break;
case 7:
mRBqxn7.setChecked(true);
mGxzwTvTitle.setText(mTitle7);
mGxzwTv.setText(mContentAct7);
break;
case 8:
mRBqxn8.setChecked(true);
mGxzwTvTitle.setText(mTitle8);
mGxzwTv.setText(mContentAct8);
break;
case 9:
mRBqxn9.setChecked(true);
mGxzwTvTitle.setText(mTitle9);
mGxzwTv.setText(mContentAct9);
break;

default:
break;
}
// 底部语音交互
ViewControllerSimple v = new ViewControllerSimple(this, findViewById(R.id.view_bottom));
v.setVisibility(View.VISIBLE);
SpeechTools.scheduleToReturn();
}


}

父类

public abstract class WyBaseActivity extends FragmentActivity {
//封装自己,经常作为上下文用
public WyBaseActivity mBaseActivity;
public FragmentManager mFragmentManager;
public LayoutInflater mLayoutInflater;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

mLayoutInflater=this.getLayoutInflater();
mBaseActivity=this;
mFragmentManager=this.getSupportFragmentManager();
setContentView(setRootView());
initViews();
initDatas();
}

//设置布局
public abstract int setRootView();

//初始化布局View
public abstract void initViews();

//初始化布局数据
public abstract void initDatas();


//打吐司
public void showToast(String text){
showToast(text,Toast.LENGTH_SHORT);
}
public void showToast(String text,int length){
Toast.makeText(mBaseActivity, text, length).show();
}

//自杀
public void killSelf(){
finish();
}
// //打log
// public void loge(){
// LogUtil.logE();
// }

//跳转到其他Activity
public void startActvity(Class activity){
Intent intent=new Intent(mBaseActivity,activity);
startActivity(intent);
}
//启动服务
public void startService(Class service){
Intent intent=new Intent(mBaseActivity,service);
startService(intent);
}
//发送广播
public void sendBroadcast(Class receiver){
Intent intent=new Intent(mBaseActivity,receiver);
sendBroadcast(intent);
}

//对于Fragment的操作
public void addFragment(int des, BaseFragment fragment){
FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
fragmentTransaction.add(des,fragment,fragment.tag);
fragmentTransaction.commit();
}
public void removeFragment( BaseFragment fragment){
FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
fragmentTransaction.remove(fragment);
fragmentTransaction.commit();
}
public void replaceFragment(int des, BaseFragment fragment){
FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
fragmentTransaction.replace(des,fragment,fragment.tag);
fragmentTransaction.commit();
}
public void hideFragment(BaseFragment fragment){
FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
fragmentTransaction.hide(fragment);
fragmentTransaction.commit();
}
public void showFragment( BaseFragment fragment){
FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
fragmentTransaction.show(fragment);
fragmentTransaction.commit();
}


}