这是我解析的xml
<?xml version="1.0" encoding="UTF-8"?>
<dict num="219" id="219" name="219">
<key>try</key>
<ps>traɪ</ps>
<ps>traɪ</ps>
<pos>vt.& vi.</pos>
<acceptation>试图,努力;实验;审判;考验;
</acceptation>
<pos>n.</pos>
<acceptation>尝试,实验;[橄]触球,(因触球获得的)向球门踢球的权利;
</acceptation>
<sent>
<orig>
If at first you don't succeed, try, try , and try again.
</orig>
<trans>
如果开始不成功, 那就一试再试下去.
</trans>
</sent>
<sent>
<orig>
If you don't succeed at first , try , try , try again.
</orig>
<trans>
起初不成功, 再三尝试.
</trans>
</sent>
<sent>
<orig>
If at first you don't succeed try , try , try again is a familiar precept.
</orig>
<trans>
如你最初不成功, 再试试看''是一句教诲.
</trans>
</sent>
<sent>
<orig>
I try to play fair and I try to control my striker with fair play.
</orig>
<trans>
我努力做到公平竞赛,和我的对手踢得干净一些.
</trans>
</sent>
<sent>
<orig>
You try this and try that, so you're sure to get nowhere.
</orig>
<trans>
你试试这个又试试那个, 却毫无进展.
</trans>
</sent>
</dict>
这是我解析该xml的代码,采用sax来解析xml
package com.example.word.Handler;
import android.util.Log;
import com.example.word.Bean.SentenceBean;
import com.example.word.Bean.WordsBean;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
import java.util.ArrayList;
public class UserHandler extends DefaultHandler {
private WordsBean wordsBean = null;
private ArrayList<WordsBean> wordsBeanList = null;
private ArrayList<SentenceBean> sentenceBeanList = null;
private String name;
private SentenceBean sentenceBean;
ArrayList<String> yinbiao;
ArrayList<String> cixing;
ArrayList<String> ciyi;
@Override
public void startDocument() throws SAXException {
super.startDocument();
wordsBeanList = new ArrayList<>();
sentenceBeanList=new ArrayList<>();
yinbiao=new ArrayList<>();
cixing=new ArrayList<>();
ciyi=new ArrayList<>();
}
@Override
public void endDocument() throws SAXException {
super.endDocument();
}
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
super.startElement(uri, localName, qName, attributes);
if(qName.equals("dict")){
wordsBean=new WordsBean();
}
if(qName.equals("sent")){
sentenceBean=new SentenceBean();
}
name = qName;
}
@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
super.endElement(uri, localName, qName);
if ("dict".equals(qName)){
wordsBean.setLiju(sentenceBeanList);
wordsBean.setYinbiao(yinbiao);
wordsBean.setCixing(cixing);
wordsBean.setExplain(ciyi);
wordsBean.setLiju(sentenceBeanList);
wordsBean=new WordsBean(wordsBean.getWord(),wordsBean.getExplain(),wordsBean.getCixing(),wordsBean.getLiju(),wordsBean.getYinbiao());
wordsBeanList.add(wordsBean);
}
if("sent".equals(qName)){
Log.e("例句",sentenceBean.getOrig());
Log.e("例句释义",sentenceBean.getTrans());
sentenceBeanList.add(sentenceBean);
sentenceBean=null;
}
name=null;
}
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
super.characters(ch, start, length);
String str = new String(ch, start, length).trim();
if ("key".equals(name)) {
wordsBean.setWord(str);
}
if ("ps".equals(name)) {
yinbiao.add(str);
}
if ("pos".equals(name)) {
cixing.add(str);
}
if ("acceptation".equals(name)) {
ciyi.add(str);
}
if ("orig".equals(name)) {
this.sentenceBean.setOrig(str);
}
if ("trans".equals(name)) {
this.sentenceBean.setTrans(str);
}
}
public ArrayList<WordsBean> getWordsBeanList() {
return wordsBeanList;
}
}
问题是无论我采用什么办法,在endelement方法中,这个例句(sentenceBean.getOrig())和例句释义("例句释义",sentenceBean.getTrans())的结果总是为空,打印了Log.e无法显示,这是为什么。怎么解决呢。