我目前正在開發Android應用程序,這意味着要學習Java。我已經玩了好幾年Python,但是現在是時候加強,現在我有一個Android手機。該應用程序基本上在本地顯示存儲在XML文件中的視頻遊戲列表。目前,XML文件的結構基本上是遊戲>遊戲(多個)>名稱(加上其他不重要的東西)。我目前正在嘗試獲取遊戲名稱列表。我查了教程和信息,但似乎沒有什麼是我需要的。我想真正理解它是如何工作的,而不僅僅是我可以複製/粘貼一段代碼。另外,請記住,名稱列表最終必須以Android的字符串數組來使用它。這裏是我現在使用的功能(從教程複製/粘貼並進行了大量編輯,因此它不可讀,一旦它實際工作,我會修復它。)現在,listview顯示爲空。至少它比以前更好,它不會崩潰了,但...解析Java中的XML文件以獲取名稱列表
public static String[] parse(String filename) {
ArrayList<String> gamesList = new ArrayList<String>();
try {
File file = new File(filename);
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(file);
doc.getDocumentElement().normalize();
NodeList nodeList = doc.getElementsByTagName("game");
for (int s = 0; s < nodeList.getLength(); s++) {
Node fstNode = nodeList.item(s);
//if (fstNode.getNodeType() == Node.ELEMENT_NODE) {
Element name = (Element) fstNode;
Element fstElmnt = (Element) fstNode;
NodeList fstNmElmntLst = fstElmnt.getElementsByTagName("name");
Element fstNmElmnt = (Element) fstNmElmntLst.item(0);
NodeList fstNm = fstNmElmnt.getChildNodes();
gamesList.add(fstNmElmnt.toString());
//}
}
} catch (Exception e) {
e.printStackTrace();
}
String[] gamesArray;
gamesArray = (String[]) gamesList.toArray(new String[0]);
return gamesArray;
}
如果你不熟悉Java,我不會建議通過嘗試解析XML文件開始。 DOM調用的一般格式看起來不錯。你在用`NodeList nodeList`做什麼?程序是否進入FOR循環? – user183037 2011-02-04 06:12:16