Android-将XML解析为ArrayList
我在解析和显示一个非常简单的xml文件中的信息时遇到问题 首先,我将xml文件存储在res/xml文件夹中。在文件夹中,我有一个名为jokes.xml的xml文件,该文件的内容如下:Android-将XML解析为ArrayList,android,android-activity,Android,Android Activity,我在解析和显示一个非常简单的xml文件中的信息时遇到问题 首先,我将xml文件存储在res/xml文件夹中。在文件夹中,我有一个名为jokes.xml的xml文件,该文件的内容如下: <?xml version="1.0" encoding="utf-8"?> <resources> <joke>This is a good joke.</joke> <joke>This is a very nice good great jo
<?xml version="1.0" encoding="utf-8"?>
<resources>
<joke>This is a good joke.</joke>
<joke>This is a very nice good great joke.</joke>
<joke>Oh Yeah!</joke>
</resources>
public class MainActivity extends Activity {
private TextView texto;
private int i = 0;
private String[] arrayJokes;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
texto = (TextView) findViewById(R.id.textView1);
XmlResourceParser joke = getResources().getXml(R.xml.jokes);
try {
while( joke.getEventType() != XmlResourceParser.END_DOCUMENT ){
if( joke.getEventType() == XmlResourceParser.START_TAG ){
String s = joke.getName();
if( s.equals("joke")){
arrayJokes[i] = joke.getAttributeValue(null, "joke");
i++;
}
}
}
} catch (XmlPullParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//takes random id from the array
Random generator = new Random();
int rnd = generator.nextInt(arrayJokes.length);
String j = arrayJokes[rnd];
texto.setText(j);
}
}
问题是我只得到一张空白页。知道我做错了什么吗
提前感谢,,
Cláudio你可以像这样解析你的笑话:
private ArrayList<String> parseJokes() {
ArrayList<String> jokes = new ArrayList<String>();
XmlResourceParser parser = getResources().getXml(R.xml.jokes);
try {
int eventType=parser.getEventType();
while (eventType!=XmlPullParser.END_DOCUMENT) {
if(eventType==XmlPullParser.START_TAG){
if (parser.getName().equals("joke")) {
jokes.add(parser.nextText());
}
}
eventType= parser.next();
}
} catch (XmlPullParserException | IOException e) {
Log.e("XmlPullParserException", e.toString());
}
parser.close();
return jokes;
}
private ArrayList parsejones(){
ArrayList笑话=新建ArrayList();
XmlResourceParser parser=getResources().getXml(R.xml.com);
试一试{
int eventType=parser.getEventType();
while(eventType!=XmlPullParser.END_文档){
if(eventType==XmlPullParser.START_标记){
if(parser.getName().equals(“笑话”)){
add(parser.nextText());
}
}
eventType=parser.next();
}
}捕获(XmlPullParserException | IOE异常){
e(“XmlPullParserException”,e.toString());
}
parser.close();
回敬笑话;
}
主要思想是使用next()方法在整个文档中推进解析器