从资源中读取XML文件

问题描述:

我有一个需要在Android SDK中解析的XML文件。从资源中读取XML文件

如何从资源中读取XML文件路径?

XML包含:

<Book> 
<Chapter> 
<NO> 1 </NO> 
<Text> My Lord </Text> 
</Chapter> 

<Chapter> 
<NO> 1 </NO> 
<Text> My Lord </Text> 
</Chapter> 
</Book> 
+0

你在原始文件夹或资产文件夹中的文件在哪里? – 2011-12-29 09:05:06

+1

我不知道如何将XML文件添加到资源中。 – Anand 2011-12-29 09:09:25

+0

你可以把你的xml放在res/raw或assets文件夹中,然后解析它。 – 2011-12-29 09:13:53

把它your_project_root\res\xml\文件夹下。然后你就可以打开它:

Resources res = activity.getResources(); 
XmlResourceParser xrp = res.getXml(R.xml.your_resId); 

有关于如何在这里使用XmlResourceParser一个例子:

http://android-er.blogspot.com/2010/04/read-xml-resources-in-android-using.html

解析XML创建你的资源内的一个文件夹,并把XML文件中在此之前。并尝试这个代码。

try { 
      XmlPullParser xpp=getResources().getXml(R.xml.words); 

      while (xpp.getEventType()!=XmlPullParser.END_DOCUMENT) { 
       if (xpp.getEventType()==XmlPullParser.START_TAG) { 
        if (xpp.getName().equals("word")) { 
         items.add(xpp.getAttributeValue(0)); 
        } 
       } 

       xpp.next(); 
      } 
     } 
     catch (Throwable t) { 
      Toast 
       .makeText(this, "Request failed: "+t.toString(), Toast.LENGTH_LONG) 
       .show(); 
     } 

如果你在你的资源的原始文件夹中的XML文件,那么你可以用下面的代码阅读:

Context context = getApplicationContext(); 
InputStream istream = context.getResources().openRawResource(R.raw.test); 

我希望这是对你有用。