Android学习之使用SAX解析xml文件(2)
来源:未知 责任编辑:责任编辑 发表时间:2014-05-20 18:32 点击:次
// 根据文本节点取值设置name
person.setName(new String(ch, start, length));
}else if("age".equals(tag)){
// 根据文本节点取值设置age
person.setAge(Integer.parseInt(new String(ch, start, length)));
}
}
}
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
// localName是不带命名空间前缀的标签名
if("person".equals(localName)){
// 将person对象加入到集合中
persons.add(person);
// person对象设置为null
person = null;
}
// 节点结束时一定要将tag设置为null
// 否则会将空白字符赋值给name和age,从而出错
tag = null;
}
@Override
public void startDocument() throws SAXException {
persons = new ArrayList<Person>();
}
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
// localName是不带命名空间前缀的标签名
if("person".equals(localName)){
person = new Person();
// 通过索引查找属性的值
person.setId(Integer.parseInt(attributes.getValue(0)));
}
tag = localName;
}
}
}
在AndroidManifest.xml加入Android测试所需要的组件
<uses-library android:name="android.test.runner" />
以及
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.study.action" android:label="Tests for My App" />
编写一个AndroidTestCase:SAXPersonServiceTest,测试代码如下:
package com.study.action;
import java.io.InputStream;
import java.util.List;
import android.test.AndroidTestCase;
import android.util.Log;
import com.study.bean.Person;
import com.study.service.SAXPersonService;
public class SAXPersonServiceTest extends AndroidTestCase {
private static final String TAG = "SAXPersonServiceTest";
public void testGetPersons() throws Throwable{
SAXPersonService personService = new SAXPersonService();
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("test.xml");
List<Person> persons = personService.getPersons(inputStream);
for(Person person : persons){
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>