歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 利用SAX、DOM和Pull實現對schools.xml的解析並進行單元測試

利用SAX、DOM和Pull實現對schools.xml的解析並進行單元測試

日期:2017/3/1 10:47:10   编辑:Linux編程

利用SAX、DOM和Pull實現對schools.xml的解析,並進行單元測試

利用Pull實現schools.xml的創建

源碼下載地址:

免費下載地址在 http://linux.linuxidc.com/

用戶名與密碼都是www.linuxidc.com

具體下載目錄在 /pub/Android源碼集錦/2011年/12月/利用SAX、DOM和Pull實現對schools.xml的解析並進行單元測試/

首先給出schools.xml文件的代碼:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <?xml-stylesheet type="text/css" href="school.css"?>
  3. <!DOCTYPE schools SYSTEM "schools.dtd">
  4. <schools>
  5. <school level="middle-school">
  6. <teacher>
  7. <teacherName>Tom</teacherName>
  8. <teacherAge>34</teacherAge>
  9. </teacher>
  10. <student>
  11. <studentName>Jack</studentName>
  12. <studentAge>28</studentAge>
  13. </student>
  14. <student>
  15. <studentName>Mary</studentName>
  16. <studentAge>22</studentAge>
  17. </student>
  18. <student>
  19. <studentName>John</studentName>
  20. <studentAge>23</studentAge>
  21. </student>
  22. </school>
  23. <school level="primary-school">
  24. <teacher>
  25. <teacherName>Tom</teacherName>
  26. <teacherAge>34</teacherAge>
  27. </teacher>
  28. <student>
  29. <studentName>Jack</studentName>
  30. <studentAge>21</studentAge>
  31. </student>
  32. <student>
  33. <studentName>Mary</studentName>
  34. <studentAge>25</studentAge>
  35. </student>
  36. <student>
  37. <studentName>Jhon</studentName>
  38. <studentAge>26</studentAge>
  39. </student>
  40. </school>
  41. </schools>
1、用sax解析該文件

SchooleHandler.java

  1. package cn.csdn.service;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import org.xml.sax.Attributes;
  5. import org.xml.sax.SAXException;
  6. import org.xml.sax.helpers.DefaultHandler;
  7. import android.util.Log;
  8. import cn.csdn.domain.School;
  9. import cn.csdn.domain.Student;
  10. import cn.csdn.domain.Teacher;
  11. public class SchoolHandler extends DefaultHandler {
  12. List<School> schoolList=null;
  13. List<Teacher> teacherList=null;
  14. List<Student> studentList=null;
  15. School school=null;
  16. Teacher teacher=null;
  17. Student student=null;
  18. String elementTag = null;
  19. public void characters(char[] ch, int start, int length)
  20. throws SAXException {
  21. String data = new String(ch, start, length);
  22. if (elementTag != null&&teacher!=null) {
  23. if("teacherName".equals(elementTag)){
  24. teacher.setName(data);
  25. //Log.i("TAG",teacher.toString());
  26. }else if("teacherAge".equals(elementTag)){
  27. teacher.setAge(Integer.valueOf(data));
  28. //Log.i("TAG",teacher.toString());
  29. }
  30. }
  31. if(elementTag!=null&&student!=null){
  32. if("studentName".equals(elementTag)){
  33. student.setName(data);
  34. }else if("studentAge".equals(elementTag)){
  35. //Log.i("TAG",data);
  36. student.setAge(Integer.parseInt(data));
  37. }
  38. }
  39. }
  40. public void endDocument() throws SAXException {
  41. }
  42. public void endElement(String uri, String localName, String qName)
  43. throws SAXException {
  44. if("teacher".equals(localName)){
  45. //Log.i("TAG",teacher.toString());
  46. teacherList.add(teacher);
  47. school.setTeacher(teacher);
  48. teacher=null;
  49. }else if("student".equals(localName)){
  50. studentList.add(student);
  51. //school.setStudent(studentList);
  52. student=null;
  53. }else if("school".equals(localName)){
  54. school.setStudent(studentList);
  55. schoolList.add(school);
  56. studentList=null;
  57. school=null;
  58. }
  59. elementTag = null;
  60. }
  61. public void startDocument() throws SAXException {
  62. schoolList=new ArrayList<School>();
  63. teacherList=new ArrayList<Teacher>();
  64. studentList=new ArrayList<Student>();
  65. }
  66. public void startElement(String uri, String localName, String qName,
  67. Attributes attributes) throws SAXException {
  68. if("school".equals(localName)){
  69. school=new School();
  70. school.setLevel(attributes.getValue(0));
  71. studentList=new ArrayList<Student>();
  72. //Log.i("TAG",attributes.getValue(0));
  73. }else if("teacher".equals(localName)){
  74. teacher=new Teacher();
  75. //Log.i("TAG",teacher.toString());
  76. if(teacher!=null){
  77. // Log.i("TAG",teacher.toString());
  78. }
  79. }else if("student".equals(localName)){
  80. student=new Student();
  81. }
  82. elementTag = localName;
  83. }
  84. public List<School> getSchooList(){
  85. return schoolList;
  86. }
  87. }
Copyright © Linux教程網 All Rights Reserved