2013-03-27 48 views
4

我已經在資產文件夾中存儲了一個XML文件,並且我想要檢索存儲在android資產中的數據XML文件,併爲我提供了一個解決方案。如何從android資產中獲取XML數據?

<Response> 
    <RequestID>1001</RequestID> 
    <FunctionStatus></FunctionStatus> 
    <Message></Message> 

<Result>  
    <Banner> 

    <Banner_List> 
     <Banner_id>3794</Banner_id> 
     <Banner_url>http://www.metromatinee.com/agile_dogs/05.jpg</Banner_url> 
     <Movie_name>Rose Guitarinaal</Movie_name> 
     <gender>Movie</gender> 
    </Banner_List> 
</Response> 

我試圖
InputStream is = getAssets().open("demo.xml");

但異常事件引起
任何幫助.. ???

03-27 11:03:04.939: E/AndroidRuntime(432): FATAL EXCEPTION: main 
03-27 11:03:04.939: E/AndroidRuntime(432): java.lang.NullPointerException 
03-27 11:03:04.939: E/AndroidRuntime(432): at android.content.ContextWrapper.getAssets(ContextWrapper.java:74) 
03-27 11:03:04.939: E/AndroidRuntime(432): at com.service.example.DemoBussinessExecutePage.executeBussinessFunction(DemoBussinessExecutePage.java:230) 
03-27 11:03:04.939: E/AndroidRuntime(432): at com.service.example.Service_Manager.executeBussinessFunction(Service_Manager.java:38) 
03-27 11:03:04.939: E/AndroidRuntime(432): at com.service.example.Service_class$1.onClick(Service_class.java:57) 
03-27 11:03:04.939: E/AndroidRuntime(432): at android.view.View.performClick(View.java:2408) 
03-27 11:03:04.939: E/AndroidRuntime(432): at android.view.View$PerformClick.run(View.java:8816) 
03-27 11:03:04.939: E/AndroidRuntime(432): at android.os.Handler.handleCallback(Handler.java:587) 
03-27 11:03:04.939: E/AndroidRuntime(432): at android.os.Handler.dispatchMessage(Handler.java:92) 
03-27 11:03:04.939: E/AndroidRuntime(432): at android.os.Looper.loop(Looper.java:123) 
03-27 11:03:04.939: E/AndroidRuntime(432): at android.app.ActivityThread.main(ActivityThread.java:4627) 
03-27 11:03:04.939: E/AndroidRuntime(432): at java.lang.reflect.Method.invokeNative(Native Method) 
03-27 11:03:04.939: E/AndroidRuntime(432): at java.lang.reflect.Method.invoke(Method.java:521) 
03-27 11:03:04.939: E/AndroidRuntime(432): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
03-27 11:03:04.939: E/AndroidRuntime(432): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
03-27 11:03:04.939: E/AndroidRuntime(432): at dalvik.system.NativeStart.main(Native Method) 

回答

1

而且atlast我得到了解決它的原始文件夾中的XML。

AssetManager am = Class.getAssets(); 
     try 
     { 
      InputStream is = am.open("1001.xml"); 
      int length = is.available(); 
      byte[] data = new byte[length]; 
      is.read(data); 
      demoInput = new String(data).toString(); 
     } 
     catch (IOException e1) 
     { 
      e1.printStackTrace(); 
     } 
0

這就是爲我工作的。

InputSource is = new InputSource(getResources().openRawResource(R.raw.config)); 
     DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
     DocumentBuilder db = dbf.newDocumentBuilder(); 
     Document doc=db.parse(new InputSource(is.getByteStream())); 
     doc.getDocumentElement().normalize(); 
    NodeList nodeList = doc.getElementsByTagName("woeid"); 
     for (int i = 0; i < nodeList.getLength(); i++) 
     { 
      Node node = nodeList.item(i); 
      Element fstElmnt = (Element) node; 
      fstElmnt.getElementsByTagName("countrywoeid").item(0).getTextContent(); 
      fstElmnt.getElementsByTagName("countryname").item(0).getTextContent(); 
     } 

下面是該項目

<settings> 
<title>Configuration</title> 
<Version>1.0</Version> 
<Gadgets>6</Gadgets> 
<woeid> 
    <countrywoeid>2211096</countrywoeid> 
    <countryname>Asia/Karachi</countryname> 
</woeid> 
<woeid> 
    <countrywoeid>2211177</countrywoeid> 
    <countryname>Asia/Karachi</countryname> 
</woeid> 
相關問題