android-xml文件解析教程
在讨论群里里面有人在问xml的解析方法,我就弄了个简单的demon来介绍我自己的方法下面的xml文件和读取的效果图
Xml代码
<?xml version="1.0" encoding="utf-8"?>
<tests>
<test name="test_1">测试1</test>
<test name="test_2">测试2</test>
<test name="test_3">测试3</test>
<test name="test_4">测试4</test>
<test name="test_5">测试5</test>
<test name="test_6">测试6</test>
<test name="test_7">测试7</test>
<test name="test_8">测试8</test>
<test name="test_9">测试9</test>
</tests>
效果图:
<br><br><img src="/2011/0921/20110921013025587.png" alt=""><br> 主要代码
Java代码
package com.wjh.xmldemon;
import java.util.ArrayList;
import org.xmlpull.v1.XmlPullParser;
import android.app.Activity;
import android.content.Context;
import android.content.res.XmlResourceParser;
import android.os.Bundle;
import android.widget.TextView;
public class XmlDemonActivity extends Activity {
/** Called when the activity is first created. */
TextView tv = null;
ArrayList<Test> list = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv =(TextView)findViewById(R.id.tv);
list = getXmlData(this, R.xml.test);
initData();
}
//初始化数据
private void initData()
{
StringBuffer sb = new StringBuffer();
int size = list.size();
for(int i = 0;i<size;i++)
{
Test test = list.get(i);
sb.append("name="+test.getName());
sb.append("|");
sb.append("text="+test.getText());
sb.append("\n");
}
tv.setText(sb.toString());
}
//获得xml文件数据,并放回一个list
public ArrayList<Test> getXmlData(Context context,int id)
{
ArrayList<Test> list = new ArrayList<Test>();
try {
//打开文档
XmlResourceParser xml = context.getResources().getXml(id);
int eventType = xml.next();
try {
// 切换到下一个状态,并获得当前状态的类型
Test test = null;
while ( true )
{
if(test == null)
{
test = new Test();
}
// 文档开始状态
if (eventType == XmlPullParser. START_DOCUMENT )
{
}
// 标签开始状态
else if (eventType == XmlPullParser. START_TAG )
{
// 将标签名称和当前标签的深度(根节点的 depth 是 1 ,第 2 层节点的 depth 是 2 ,类推)
switch (xml.getDepth())
{
补充:移动开发 , Android ,