您的位置:首页 > 其它

使用原始的XML资源

2014-02-19 13:05 309 查看




实例



在res文件夹下建立xml文件夹,在该文件夹下建立
car.xml
<?xml version="1.0" encoding="UTF-8"?>

<cars>
<car price="22w" brand="大众">迈腾</car>
<car price="45w" brand="宝马">535li</car>
<car price="36w" brand="奥迪">A6</car>

</cars>

其他文件

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    tools:context=".MainActivity" 

    android:orientation="vertical">

<Button android:id="@+id/but"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="开始解析"
   android:layout_gravity="center_horizontal"/>

<TextView android:id="@+id/result"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"/>

</LinearLayout>

MainActivity.java

package com.example.resourcexml;

import android.os.Bundle;

import android.app.Activity;

import android.content.res.XmlResourceParser;

import android.text.style.SuperscriptSpan;

import android.view.Menu;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

final TextView result=(TextView) super.findViewById(R.id.result);

Button but=(Button) super.findViewById(R.id.but);
but.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
//根据xml资源的ID解析资源
//XmlResourceParser是XmlPullParser的子类
XmlResourceParser xrp=getResources().getXml(R.xml.car);
try{
StringBuilder sb=new StringBuilder("");
/*
* 文档刚被初始化,所以它应该位于文档的开始,事件应该是START_DOCUMENT,
* 可以通过XmlPullParser.getEventType()
*/

//如果还没有到文档的结尾
while(xrp.getEventType()!=XmlResourceParser.END_DOCUMENT){

//如果遇到了开始标签
if(xrp.getEventType()==XmlResourceParser.START_TAG){
//获取该标签的标签名
String tagName=xrp.getName();
//如果遇到car标签
if(tagName.equals("car")){

//根据属性名来获取属性值
String carPrice=xrp.getAttributeValue(0);
String carBrand=xrp.getAttributeValue(1);
/*
* 如果当前节点是START_TAG节点,而且下一个节点是TEXT节点,那么TEXT节点内容被返回。
* 或者如果下一个节点是END_TAG节点那就返回空String,否则抛出异常
*/
String carModel=xrp.nextText();

sb.append("价格:"+carPrice);
sb.append("品牌:"+carBrand);
sb.append("型号:"+carModel);
}
sb.append("\n");
}
//获取解析器的下一个事件
xrp.next();
}
result.setText(sb);

}
catch(Exception e){
e.printStackTrace();
}

}
});
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  原始的XML