package com.softeem.pull; import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import org.kxml2.io.KXmlParser; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import com.softeem.dom.write.UserBean; public class Demo1 { public static void main(String[] args) throws XmlPullParserException,IOException { List<UserBean> userList = null; UserBean userBean = null; List<String> favoriteList = null; // 1.创建解析器 KXmlParser parser = new KXmlParser(); // 2.设置输入流:保证 读取的编码方式和xml文档中声明的encoding一致 // parser.setInput(new FileInputStream(new File("src\\UserList.xml")),// "utf-8"); parser.setInput(new InputStreamReader(new FileInputStream(new File( "src\\UserList.xml")),"utf-8")); // 3.解析 // parser.getEventType();获取事件类型。 // parser.next();继续读取下一个标签。 // parser.getName();获取当前标签的标签名 // parset.nextText();获取当前标签后的文本 // <username>aaa int type = parser.getEventType(); // DOCUMENT_START while (type != XmlPullParser.END_DOCUMENT) { switch (type) { case XmlPullParser.START_TAG: if ("userlist".equals(parser.getName())) { // userlist开始标签 userList = new ArrayList<UserBean>(); } if ("user".equals(parser.getName())) { // user开始标签 userBean = new UserBean(); // 读取id属性 // userBean.setId(parser.getAttributeValue(0)); // getAttributeCount():获取属性数量 // getAttributeName(int index):获取第index个属性名 // getAttributeValue(int index):获取第index个属性值 // getAttributeValue(String 命名空间,String 属性名); // getNameSpace()获取命名空间 String nameSpace = parser.getNamespace(); String id = parser.getAttributeValue(nameSpace,"id"); System.out.println(parser.getAttributeValue(nameSpace,"sex")); userBean.setId(id); } if ("username".equals(parser.getName())) { // username开始标签: userBean.setUsername(parser.nextText()); } if ("password".equals(parser.getName())) { // password开始标签: userBean.setPassword(parser.nextText()); } if ("favoritelist".equals(parser.getName())) { // favoritelist开始标签 favoriteList = new ArrayList<String>(); } if ("favorite".equals(parser.getName())) { // favorite开始标签 favoriteList.add(parser.nextText()); } break; case XmlPullParser.END_TAG: if ("favoritelist".equals(parser.getName())) { // favoritelist结束标签 userBean.setFavorites(favoriteList); } if ("user".equals(parser.getName())) { // user结束标签 userList.add(userBean); } break; } // 跳转到下一个标签 type = parser.next(); } } }
UserList.xml
<?xml version="1.0" encoding="utf-8"?> <userlist> <user id="100" sex="男"> <username>aaa</username> <password>aaa</password> <favoritelist> <favorite>aihao1</favorite> <favorite>aihao1</favorite> <favorite>aihao1</favorite> </favoritelist> </user> <user id="101" sex="女"> <username>bbb</username> <password>bbb</password> <favoritelist> <favorite>aihao1</favorite> <favorite>aihao1</favorite> <favorite>aihao1</favorite> </favoritelist> </user> <user id="102" sex="人妖"> <username>ccc</username> <password>ccc</password> <favoritelist> <favorite>aihao1</favorite> <favorite>aihao1</favorite> <favorite>aihao1</favorite> </favoritelist> </user> </userlist>
http://download.csdn.net/detail/hoho_12/9600193
http://download.csdn.net/detail/hoho_12/9600194