2012-02-27 73 views
10

Tôi muốn đọc file xml mà trông giống như sau ... tôi đã lưu trữ nó trong thư mục tài sản cóLàm thế nào để đọc file XML trong Android

<ImageList SpriteSheetName="hh_gmw01"> 
    <Image Name="gmw01"  x="0" y="0" width="1047" height="752"/> 
    <Image Name="hht1l01" x="388" y="269" width="34" height="36"/> 
    <Image Name="hht1l02" x="147" y="99" width="85" height="33"/> 
</ImageList> 

Làm thế nào để có được những giá trị này?

+0

http://www.google.co.in/#hl=vi&output=search&sclient=psy-ab&q=java+read+xml+file&pbx=1&oq=java+read+xml+file&aq=f&aqi=&aql=&gs_sm= 3 & gs_upl = 999l5493l0l5744l18l14l0l0l5744l18l14l0l0l0l0l0l0ll0l0 & bav = on.2, hoặc.r_gc.r_pw.r_cp.r_qf., Cf.osb & fp = f56754703660b899 & biw = 1353 & bih = 1070 –

Trả lời

5

Hãy thử này ra đầu tiên:

import java.io.IOException; 
import java.io.InputStream; 

import android.app.Activity; 
import android.content.res.AssetManager; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.TextView; 

public class Main extends Activity { 

Button btn; 
TextView tvXml; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    Button btn = (Button) findViewById(R.id.button1); 

    btn.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // Load XML for parsing. 
      AssetManager assetManager = getAssets(); 
      InputStream inputStream = null; 
      try { 
       inputStream = assetManager.open("textxml.xml"); 
      } catch (IOException e) { 
       Log.e("tag", e.getMessage()); 
      } 

      String s = readTextFile(inputStream); 
      TextView tv = (TextView)findViewById(R.id.textView1); 
      tv.setText(s); 
     } 
    }); 
} 


private String readTextFile(InputStream inputStream) { 
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); 

    byte buf[] = new byte[1024]; 
    int len; 
    try { 
     while ((len = inputStream.read(buf)) != -1) { 
      outputStream.write(buf, 0, len); 
     } 
     outputStream.close(); 
     inputStream.close(); 
    } catch (IOException e) { 

    } 
    return outputStream.toString(); 
} 
} 
2

Có một số cách để đọc XML trong Android. Tùy chọn đầu tiên của tôi là DocumentBuilder vì không tạo ra hạn chế phiên bản API (có sẵn từ cấp API 1).

Một ví dụ từ một trong những dự án của tôi:

public Document parseXML(InputSource source) { 
    try { 
     DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
     dbf.setNamespaceAware(false); 
     dbf.setValidating(false); 
     DocumentBuilder db = dbf.newDocumentBuilder(); 
     return db.parse(source); 
    } catch (Exception e) { 
     e.printStackTrace(); 
     return null; 
    } 
} 

Làm thế nào để bạn đọc các tập tin và truy cập vào các giá trị tài liệu sau này, tốt, khá cơ bản của nó, chỉ cần Google nó.

+0

cảm ơn sự trợ giúp – user1169079

2

Để bắt đầu sử dụng trình phân tích cú pháp DOM. Kể từ khi mã ít hơn nhiều của nó, và dễ làm theo. Trình phân tích SAX chỉ là quá nhiều mã để bắt đầu. Mọi người sẽ cho rằng SAX nhanh hơn, đúng vậy, nhưng DOM dễ hơn, ít mã hơn và ít lỗi hơn.

Nếu bạn phải chuyển sang SAX, trước tiên hãy đo thời gian phản hồi của bạn khi sử dụng DOM và chỉ khi phân tích cú pháp làm bạn đau nhất, sau đó chuyển sang SAX. Hoặc người nào khác DOM làm một công việc tuyệt vời.

-1

Hãy thử điều này cho Xamarin.Android (Cross Platform)

bạn cần lưu trữ tập tin xml vào thư mục tài sản với xây dựng hành động "AndroidAsset".

using System; 
using System.Xml; 
using System.IO; 

đoạn mã để đọc file xml

XmlDocument xDoc = new XmlDocument(); 
Stream xmlStream = Assets.Open("textxml.xml"); 
xDoc.Load(xmlStream); 

lớp XmlDocument thực hiện các lõi Tài liệu XML Object Model (DOM) phân tích cú pháp cho .NET Framework.

Các vấn đề liên quan