把心刘
2017-02-18 00:10
package com.imooc.dom4jtest; import java.awt.print.Book; import java.io.File; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class DOM4JTest { private final static ArrayList<Book> booksList = new ArrayList<Book>(); public static void main(String[] args) { // 解析books.xml文件 // 创建SAXReader的对象reader SAXReader reader = new SAXReader(); try { // 通过reader对象的read方法加载books.xml文件,获取document对象 Document document = reader.read(new File("src/books.xml")); // 通过document对象获取根节点bookStore 目的:遍历根节点和子节点信息 Element bookStore = document.getRootElement(); // 通过element对象的elementIterator方法获取迭代器 Iterator it = bookStore.elementIterator(); // 遍历迭代器获取根节点中的信息(书籍) while(it.hasNext()){ com.imooc.entity.Book bookEntity = new com.imooc.entity.Book(); System.out.println("====开始遍历某一本书===="); Element book = (Element) it.next();//next方法返回的是Object类型 但遍历的是节点类型Element // 获取book的属性名和属性值 List<Attribute> bookattrs = book.attributes(); for (Attribute attr : bookattrs) { System.out.println("属性名" + attr.getName() + "----属性值:" + attr.getValue()); if(attr.getName().equals("id")){ bookEntity.setId(attr.getValue()); } } Iterator itt = book.elementIterator(); while(itt.hasNext()){ Element bookchild = (Element) itt.next(); System.out.println("节点名:" + bookchild.getName()+ "----节点值:" + bookchild.getStringValue()); if(bookchild.getName().equals("name")){ bookEntity.setName(bookchild.getStringValue()); } else if(bookchild.getName().equals("year")){ bookEntity.setYear(bookchild.getStringValue()); } else if(bookchild.getName().equals("author")){ bookEntity.setAuthor(bookchild.getStringValue()); } else if(bookchild.getName().equals("price")){ bookEntity.setPrice(bookchild.getStringValue()); } else if(bookchild.getName().equals("language")){ bookEntity.setLanguage(bookchild.getStringValue()); } } System.out.println("====结束遍历某一本书===="); booksList.add(bookEntity); bookEntity = null; } } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
报错信息是:
The method add(java.awt.print.Book) in the type ArrayList<Book> is not applicable for the arguments (com.imooc.entity.Book)
这个是Java awt组件里面的包,你要导入的是你自己建立的Book类对象所在的包。
import java.awt.print.Book;
导错包了
Java眼中的XML---文件读取
83202 学习 · 431 问题
相似问题