现在的位置: 首页 > 综合 > 正文

android XmlPullParser

2018年01月18日 ⁄ 综合 ⁄ 共 1893字 ⁄ 字号 评论关闭

package com.sagaware.app.databasebackup;

 

import java.io.File;

import java.io.FileInputStream;

import java.io.InputStream;

import java.util.ArrayList;

import java.util.List;

 

import org.xmlpull.v1.XmlPullParser;

 

import android.util.Log;

import android.util.Xml;

 

public class XmlParserPull implements XmlParser {

 

public List<DataTable> getDateTable(String fileName) {

// TODO Auto-generated method stub

 

List<DataTable> dataTableList = null;

 

DataTable dataTable = null;

 

List<DataRow> dataRowList = null;

 

DataRow dataRow = null;

 

List<DataColumn> dataColumnList = null;

 

DataColumn dataColumn = null;

 

XmlPullParser parser = Xml.newPullParser();

 

try {

// auto-detect the encoding from the stream

 

File file = new File(fileName);

 

InputStream inputStream = new FileInputStream(file);

 

parser.setInput(inputStream, null);

 

int eventType = parser.getEventType();

 

while (eventType != XmlPullParser.END_DOCUMENT) {

String nodeName = parser.getName();

switch (eventType) {

// 文档开始

case XmlPullParser.START_DOCUMENT:

dataTableList = new ArrayList<DataTable>();

break;

// 节点开始

case XmlPullParser.START_TAG:

if (TABLE.equals(nodeName)) {

dataTable = new DataTable();

dataTable.setName(parser.getAttributeValue(0));

dataTable.setSql(parser.getAttributeValue(1));

dataRowList = new ArrayList<DataRow>();

} else if (ROW.equals(nodeName)) {

dataRow = new DataRow();

dataColumnList = new ArrayList<DataColumn>();

 

} else if (COL.equals(nodeName)) {

dataColumn = new DataColumn();

dataColumn.setName(parser.getAttributeValue(0));

dataColumn.setValue(parser.nextText());

}

break;

// 节点结束

case XmlPullParser.END_TAG:

if (TABLE.equals(nodeName)) {

dataTable.setDataRowList(dataRowList);

dataTableList.add(dataTable);

dataTable = null;

} else if (ROW.equals(nodeName)) {

dataRow.setDataColumnList(dataColumnList);

dataRowList.add(dataRow);

dataRow = null;

} else if (COL.equals(nodeName)) {

dataColumnList.add(dataColumn);

dataColumn = null;

}

break;

}

eventType = parser.next();

}

 

} catch (Exception e) {

Log.e("XmlParserPull:", e.getMessage(), e);

throw new RuntimeException(e);

}

 

return dataTableList;

}

}

抱歉!评论已关闭.