最牛的路径定位方式:// 先获取当前类对象(类名.class) 然后再调用getResourceAsStream(获取资源成为流— 输入流) 目前学的: / 代表从src下面找

image.png
image.png

  1. package com.itheima.d1_dom4j;
  2. import org.dom4j.Document;
  3. import org.dom4j.Element;
  4. import org.dom4j.io.SAXReader;
  5. import org.junit.Test;
  6. import java.util.ArrayList;
  7. import java.util.List;
  8. public class Dom4JTest2 {
  9. @Test
  10. public void parseToList() throws Exception {
  11. // 需求:解析XML中的数据成为一个List集合对象。
  12. // 1、导入框架(做过)
  13. // 2、创建SaxReader对象
  14. SAXReader saxReader = new SAXReader();
  15. // 3、加载XML文件成为文档对象Document对象。
  16. Document document =
  17. saxReader.read(Dom4JTest2.class.getResourceAsStream("/Contacts.xml"));
  18. // 4、先拿根元素
  19. Element root = document.getRootElement();
  20. // 5、提取contact子元素
  21. List<Element> contactEles = root.elements("contact");
  22. // 6、准备一个ArrayList集合封装联系人信息
  23. List<Contact> contacts = new ArrayList<>();
  24. // 7、遍历Contact子元素
  25. for (Element contactEle : contactEles) {
  26. // 8、每个子元素都是一个联系人对象
  27. Contact contact = new Contact();
  28. contact.setId(Integer.valueOf(contactEle.attributeValue("id")));
  29. contact.setVip(Boolean.valueOf(contactEle.attributeValue("vip")));
  30. contact.setName(contactEle.elementTextTrim("name"));
  31. contact.setGender(contactEle.elementTextTrim("gender").charAt(0));
  32. contact.setEmail(contactEle.elementText("email"));
  33. // 9、把联系人对象数据加入到List集合
  34. contacts.add(contact);
  35. }
  36. // 10、遍历List集合
  37. for (Contact contact : contacts) {
  38. System.out.println(contact);
  39. }
  40. }
  41. }