我目前正在开发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