0

スマートフォンのSDカードにあるxmlファイルを解析することで少し問題があります。

xml構造は次のようになります。

....
<nd ref="1364745028"/> 
<nd ref="1364745137"/> 
<nd ref="2121048622"/> 
<nd ref="2121048651"/> 
<tag v="forest" k="landuse"/> 
</way> 
-<way id="25089587"> 
<nd ref="273065498"/> 
<nd ref="273065777"/> 
<nd ref="1882290182"/> 
<nd ref="1882290194"/>
....

特に「森」という価値が欲しいです。どうすれば値を取得できますか?私の現在のコードは次のようになります:

....
try {
   File root = android.os.Enviroment.getExternalStorageDirectory();
   Document document = builder.parse(new FileInputStream(root.getAbsolutePath() + "/xmls/xapi.xml");

NodeList tag = document.getElementsByTagName("tag");
for(int i = 0; i < tag.getLength(); i++) {
  Element element = (Element) tag.item(i);
  NodeList value = element.getElementsByTagName("k");
  Element line = (Element) value.item(0);
  parameter.setText(line.getTextContent());
}
}catch(SAXException e) {
....
}catch(IOException e) {
....
}

ボタンをクリックするとアプリがクラッシュします。onlick-methodはこれらのtry-catchブロックです。誰かイデオ、それを修正する方法は?前もって感謝します。

エラーメッセージをEDIT1

02-20 17:54:42.495: E/AndroidRuntime(12627): FATAL EXCEPTION: main
02-20 17:54:42.495: E/AndroidRuntime(12627): java.lang.IllegalStateException: Could not execute method of the activity
02-20 17:54:42.495: E/AndroidRuntime(12627):    at android.view.View$1.onClick(View.java:3100)
02-20 17:54:42.495: E/AndroidRuntime(12627):    at android.view.View.performClick(View.java:3627)
02-20 17:54:42.495: E/AndroidRuntime(12627):    at android.view.View$PerformClick.run(View.java:14329)
02-20 17:54:42.495: E/AndroidRuntime(12627):    at android.os.Handler.handleCallback(Handler.java:605)
02-20 17:54:42.495: E/AndroidRuntime(12627):    at android.os.Handler.dispatchMessage(Handler.java:92)
02-20 17:54:42.495: E/AndroidRuntime(12627):    at android.os.Looper.loop(Looper.java:137)
02-20 17:54:42.495: E/AndroidRuntime(12627):    at android.app.ActivityThread.main(ActivityThread.java:4511)
02-20 17:54:42.495: E/AndroidRuntime(12627):    at java.lang.reflect.Method.invokeNative(Native Method)
02-20 17:54:42.495: E/AndroidRuntime(12627):    at java.lang.reflect.Method.invoke(Method.java:511)
02-20 17:54:42.495: E/AndroidRuntime(12627):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980)
02-20 17:54:42.495: E/AndroidRuntime(12627):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)
02-20 17:54:42.495: E/AndroidRuntime(12627):    at dalvik.system.NativeStart.main(Native Method)
02-20 17:54:42.495: E/AndroidRuntime(12627): Caused by: java.lang.reflect.InvocationTargetException
02-20 17:54:42.495: E/AndroidRuntime(12627):    at java.lang.reflect.Method.invokeNative(Native Method)
02-20 17:54:42.495: E/AndroidRuntime(12627):    at java.lang.reflect.Method.invoke(Method.java:511)
02-20 17:54:42.495: E/AndroidRuntime(12627):    at android.view.View$1.onClick(View.java:3095)
02-20 17:54:42.495: E/AndroidRuntime(12627):    ... 11 more
02-20 17:54:42.495: E/AndroidRuntime(12627): Caused by: java.lang.NullPointerException
02-20 17:54:42.495: E/AndroidRuntime(12627):    at com.example.parsexml.MainActivity.ReadXMLFromSD(MainActivity.java:116)
02-20 17:54:42.495: E/AndroidRuntime(12627):    ... 14 more
4

0 に答える 0