1. Android 프로젝트 assets 폴더내에 저장한 xml파일 info.xml
에 id 라는 명칭으로 안드로메다 라는 값를 입력함
1
2
3
4
5
6
|
<?xml version="1.0" encoding="UTF-8"?>
<info-list>
<info>
<id>안드로메다</id>
</info>
</info-list>
|
2. muinfo.java 라는 객체 생성용 클래스 작성
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
public class MuInfo{
private String id;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@Override
public String toString(){
StringBuffer sb = new StringBuffer();
sb.append(String.format("[%s]%n", getClass().getSimpleName()));
sb.append(String.format("id: %s%n", id));
return sb.toString();
}
}
|
3. InfoService.java 라는 클래스를 생성후 xml 내용을
가져온다.
/*이렇게 작성하면 assets폴더내에 있는 xml에 있는 내용을 가져와서
해당 이니셜 (여기서는 id만)
에 매칭되는 문자를 id에 저장후 (여러개면 여러 변수)
이걸 muInfo 라는 객체에 저장후 처음에 선언했던
infoMap에 put해줍니다.*/
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
|
public class InfoService{
private static final String INFO_FILE = "info.xml";
private static Map<String, infoo> infoMap = new LinkedHashMap<String, info>();
public static Map<String, Info> getInfo(Context context){
if(infoMap.size() == 0){
InputStream in = null;
try {
in = context.getAssets().open(INFO_FILE); //안드로이드용
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(in);
doc.getDocumentElement().normalize();
Element infoListElement = doc.getDocumentElement();
NodeList children = infoListElement.getChildNodes();
String id;
for(int i=0; i<children.getLength(); i++){
Node infoNode = children.item(i);
if(infoNode.getNodeType() == Node.TEXT_NODE)
continue;
Element infoElement = (Element)infoNode;
id = infoElement.getElementsByTagName("id").item(0).
getChildNodes().item(0).getNodeValue();
muInfo info = new muInfo();
info.setId(id);
infoMap.put(id, info);
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(in!=null){ try{ in.close(); }catch(IOException e){ } }
}
}
return infoMap;
}
|
4. activity 선언부에 다음과 같이 작성
private Map<String, Info> InfoMap;
5. activity onCreat 함수에 다음 내용 추가
1
2
3
4
5
6
7
|
InfoMap = InfoService.getInfo(this);
String Id = ""+InfoMap.get(Id);
} catch (Exception e) {
e.printStackTrace();
}
}
}
|
그러면 id라는 변수 xml 에서 지정한 id 값이 저장됩니다.
댓글 없음:
댓글 쓰기