使用XmlPullParser解析xml文件

来源:互联网 发布:网络主播涉黄 编辑:程序博客网 时间:2024/06/03 16:05
<?xml version="1.0" encoding="UTF-8"?>
<persons>
    <person id="23"> <name>jianying</name> <age>24</age></person>
     <person id="24"><name>liming</name><age>25</age>

     </person>

</persons>

 以上为 解析上述的xml文件:

public class XmlTest {public static List<Person> getPersons(InputStreamReader xml,InputStream io)throws XmlPullParserException, IOException {//List<Person> persons = null;Person person = null;XmlPullParser parser = Xml.newPullParser();//XmlPullParser parser = XmlPullParserFactory.newInstance()//.newPullParser();//这个原来可以吗?第一次用哦parser.setInput(io,"UTF-8");//parser.setInput(inputStream, inputEncoding)int ev = parser.getEventType();while (ev != XmlPullParser.END_DOCUMENT) {switch (ev) {case XmlPullParser.START_DOCUMENT://<?xml version="1.0" encoding="UTF-8"?>这句为开始文档部分persons = new ArrayList<Person>();break;case XmlPullParser.START_TAG:if ("person".equals(parser.getName())) {// 解析器指针所指的节点值int id = new Integer(parser.getAttributeValue(0));person = new Person();person.setId(id);}if ("name".equals(parser.getName())) {String name = parser.nextText();//执行完这句,此时游标的指向结束标签</name>person.setName(name);}if ("age".equals(parser.getName())) {int age =new Integer (parser.nextText());person.setAge(age);}break;case XmlPullParser.END_TAG:if("person".equals(parser.getName())){persons.add(person);person=null;}break;}ev=parser.next();//游标指向下一个节点//}return persons;}}

xml文件中包含元素节点(<persons>)和文本节点,当游标指向元素节点时,它获得的值可能为开始文档标签,开始标签,结束标签,

切记:当游标指向空白部分的时候,也是文本节点



0 0
原创粉丝点击