import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.InputStream;import java.io.OutputStream;import java.io.UnsupportedEncodingException;import java.util.ArrayList;import java.util.List;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.DocumentHelper;import org.dom4j.Element;import org.dom4j.io.OutputFormat;import org.dom4j.io.SAXReader;import org.dom4j.io.XMLWriter;public class BookUtis { public ListxmlToBook(InputStream is) throws Exception{ //封装了对xml的解析 SAXReader read=new SAXReader(); //做文件,解析器读取数据InputStream。从网络端收取数据或者从文件中读取数据 Document doc=read.read(is); //根元素 Element root=doc.getRootElement(); List booklist=new ArrayList (); List bookElements=root.elements("book");//这个文件万一下面有多个子元素的话,只拿其中book for(Element e:bookElements){ Book book=new Book(); //明确book下只有name单个元素 // book元素下获取name返回Element类型的list,只有一个元素取get(0)获取第一行,整体扩起来是一个单个元素,获取文本,tostring String name=((Element)(e.elements("name").get(0))).getData().toString(); double price=Double.parseDouble(((Element)(e.elements("price").get(0))).getData().toString()); book.setName(name); book.setPrice(price); booklist.add(book); } return booklist; } public List xmlToBook(String xmlFileName) throws Exception{ InputStream is=new FileInputStream(xmlFileName); List list=xmlToBook(is); return list; } public void bookToXML(List booklist,OutputStream os) throws Exception{ Document doc=DocumentHelper.createDocument(); Element root=doc.addElement("books"); for(Book book:booklist){ Element bookElement=root.addElement("book"); bookElement.addElement("name").setText(book.getName()); bookElement.addElement("price").setText(String.valueOf(book.getPrice())); } XMLWriter write=new XMLWriter(os,OutputFormat.createCompactFormat()); write.write(doc); write.close(); }}