当前位置:编程学习 > XML/UML >>

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 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,