私は現在Androidアプリを開発中です。これはJavaの学習を意味します。私は数年前からPythonを使いこなしてきましたが、今はアンドロイドの携帯電話を持っていることになりました。このアプリは基本的にXMLファイルにローカルに保存されたビデオゲームのリストを表示します。現在、XMLファイルの構造は、基本的にはゲーム>ゲーム(複数)>名前(これ以外は重要ではありません)です。私は現在、ゲームの名前のリストを取得しようとしています。私はチュートリアルや情報を見てきましたが、私の必要とするものはそれほど多くありません。実際にどのように動作するのかを実際に理解したいだけで、コピー/貼り付けできるコードを用意するのではなく、また、名前のリストは、Androidが使用するための文字列の配列として終わらなければならないことに留意してください。ここで私が今使っている機能はあります(チュートリアルからコピー/ペーストされています。ひどく編集されているため、読み込みができません)。実際にはリストビューは空になります。少なくとも、それは前よりはましだと、それはあなたがgameListにfstNmElmnt.toStringを()を追加する時点で、あなたのコードでは...もうしかし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
これは学習の練習でない限り、1つのXPath式で簡単に達成できることを行うために、低レベルのDOMインターフェイスを使いこなすことは本当にありません。 (低レベルのツリーナビゲーションを使用したい場合でも、DOMは最悪の選択肢です - JDOMとXOMははるかに使いやすく、高速です) –
実際、AndroidにはXPathがありません。だから私は低レベルのものをしなければならない。 –