2013-03-27 4 views
4

XML 파일을 assets 폴더에 저장했으며, 안드로이드에 자산에 저장된 데이터 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> 
관련 문제