안드로이드에서는 세 가지의 xml파싱이 존재한다. DOM, SAX, XmlPullParser가 존재하는데 각각 장단점이 있어서 목적에 따라
적절한 파서를 사용하면 된다.
여기에서는 XmlPullParser의 사용법을 알아보는데, 객체생성부터 호출까지 사용법이 간단하다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
XmlPullParserFactory parserCreator = XmlPullParserFactory.newInstance();
		XmlPullParser parser = parserCreator.newPullParser();
		parser.setInput(new URL(url).openStream(), null);
		int parserEvent = parser.getEventType();
		try{
			/* xml태그가 끝날때 까지 탐색하면서 원하는 태그와 같으면
			 *  태그의 값을 불러와서 배열에 저장하는 원리를 갖고 있다.
			 */			
			while((parserEvent = parser.next()) != XmlPullParser.END_DOCUMENT){
				if(parserEvent==XmlPullParser.START_TAG){
					String tag = parser.getName();				
					if(tag.contains("uIid")){
						parserEvent = parser.next();
						if(parserEvent==XmlPullParser.TEXT){
							String text = parser.getText().substring("http://img.qrobo.com/Image/image.php?kind=l&image_id= ".length());
							imgvc.add(text);
						}					
					}
					if(tag.contains("title")){
						parserEvent = parser.next();
						if(parserEvent==XmlPullParser.TEXT){
							String text = parser.getText();
							titlevc.add(text);
						}					
					}
					if(tag.contains("url")){
						parserEvent = parser.next();
						if(parserEvent==XmlPullParser.TEXT){
							String text = parser.getText();							
							urlvc.add(text);
						}					
					}
				}
			}
		}catch(Exception e){
			imgvc.clear();
			titlevc.clear();
			urlvc.clear();
		}

php에서의 exlpode($String)은 자바에서의 split()와 비슷하다.

1
2
$pizza = "piece1 piece2 piece3";
$pieces = explode(" ", $pizza);

위와같이 코딩하면 pieces는 세개의 값을 갖는 배열이되고(explode의 return형은 array이다.),
explode(” “, $pizza)의 의미는 pizza라는 변수의 값을 ” “단위로 분리한다는 의미이다. 따라서 각각의 배열에는 다음과 같은 값을 갖게된다.
pieces[0] = piece1
pieces[1] = piece2
pieces[2] = piece3