pull方式解析xml

前端之家收集整理的这篇文章主要介绍了pull方式解析xml前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. package com.softeem.pull;
  2.  
  3. import java.io.File;
  4. import java.io.FileInputStream;
  5. import java.io.FileReader;
  6. import java.io.IOException;
  7. import java.io.InputStreamReader;
  8. import java.util.ArrayList;
  9. import java.util.List;
  10.  
  11. import org.kxml2.io.KXmlParser;
  12. import org.xmlpull.v1.XmlPullParser;
  13. import org.xmlpull.v1.XmlPullParserException;
  14.  
  15. import com.softeem.dom.write.UserBean;
  16.  
  17. public class Demo1 {
  18. public static void main(String[] args) throws XmlPullParserException,IOException {
  19.  
  20. List<UserBean> userList = null;
  21. UserBean userBean = null;
  22. List<String> favoriteList = null;
  23.  
  24. // 1.创建解析器
  25. KXmlParser parser = new KXmlParser();
  26. // 2.设置输入流:保证 读取的编码方式和xml文档中声明的encoding一致
  27. // parser.setInput(new FileInputStream(new File("src\\UserList.xml")),// "utf-8");
  28. parser.setInput(new InputStreamReader(new FileInputStream(new File(
  29. "src\\UserList.xml")),"utf-8"));
  30.  
  31. // 3.解析
  32. // parser.getEventType();获取事件类型。
  33. // parser.next();继续读取下一个标签
  34. // parser.getName();获取当前标签标签
  35. // parset.nextText();获取当前标签后的文本
  36. // <username>aaa
  37.  
  38. int type = parser.getEventType(); // DOCUMENT_START
  39. while (type != XmlPullParser.END_DOCUMENT) {
  40. switch (type) {
  41. case XmlPullParser.START_TAG:
  42. if ("userlist".equals(parser.getName())) {
  43. // userlist开始标签
  44. userList = new ArrayList<UserBean>();
  45. }
  46.  
  47. if ("user".equals(parser.getName())) {
  48. // user开始标签
  49. userBean = new UserBean();
  50. // 读取id属性
  51. // userBean.setId(parser.getAttributeValue(0));
  52.  
  53. // getAttributeCount():获取属性数量
  54. // getAttributeName(int index):获取第index个属性
  55. // getAttributeValue(int index):获取第index个属性
  56. // getAttributeValue(String 命名空间,String 属性名);
  57. // getNameSpace()获取命名空间
  58. String nameSpace = parser.getNamespace();
  59.  
  60. String id = parser.getAttributeValue(nameSpace,"id");
  61.  
  62. System.out.println(parser.getAttributeValue(nameSpace,"sex"));
  63.  
  64. userBean.setId(id);
  65. }
  66.  
  67. if ("username".equals(parser.getName())) {
  68. // username开始标签:
  69. userBean.setUsername(parser.nextText());
  70. }
  71.  
  72. if ("password".equals(parser.getName())) {
  73. // password开始标签:
  74. userBean.setPassword(parser.nextText());
  75. }
  76.  
  77. if ("favoritelist".equals(parser.getName())) {
  78. // favoritelist开始标签
  79. favoriteList = new ArrayList<String>();
  80. }
  81.  
  82. if ("favorite".equals(parser.getName())) {
  83. // favorite开始标签
  84. favoriteList.add(parser.nextText());
  85. }
  86. break;
  87.  
  88. case XmlPullParser.END_TAG:
  89. if ("favoritelist".equals(parser.getName())) {
  90. // favoritelist结束标签
  91. userBean.setFavorites(favoriteList);
  92. }
  93.  
  94. if ("user".equals(parser.getName())) {
  95. // user结束标签
  96. userList.add(userBean);
  97. }
  98.  
  99. break;
  100. }
  101.  
  102. // 跳转到下一个标签
  103. type = parser.next();
  104. }
  105. }
  106. }


UserList.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <userlist>
  3. <user id="100" sex="男">
  4. <username>aaa</username>
  5. <password>aaa</password>
  6. <favoritelist>
  7. <favorite>aihao1</favorite>
  8. <favorite>aihao1</favorite>
  9. <favorite>aihao1</favorite>
  10. </favoritelist>
  11. </user>
  12. <user id="101" sex="女">
  13. <username>bbb</username>
  14. <password>bbb</password>
  15. <favoritelist>
  16. <favorite>aihao1</favorite>
  17. <favorite>aihao1</favorite>
  18. <favorite>aihao1</favorite>
  19. </favoritelist>
  20. </user>
  21. <user id="102" sex="人妖">
  22. <username>ccc</username>
  23. <password>ccc</password>
  24. <favoritelist>
  25. <favorite>aihao1</favorite>
  26. <favorite>aihao1</favorite>
  27. <favorite>aihao1</favorite>
  28. </favoritelist>
  29. </user>
  30. </userlist>


pull方式解压所需jar包

http://download.csdn.net/detail/hoho_12/9600193

http://download.csdn.net/detail/hoho_12/9600194

猜你在找的XML相关文章