怎么在java中使用DOM4J对XML文件进行操作
作者
这篇文章给大家介绍怎么在java中使用DOM4J对XML文件进行操作,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
DOM4j.java
packagecom.zc.homeWork19; importjava.io.FileWriter; importjava.util.ArrayList; importjava.util.Iterator; importjava.util.List; importorg.dom4j.Document; importorg.dom4j.Element; importorg.dom4j.io.SAXReader; importorg.dom4j.io.XMLWriter; importcom.zc.homeWork19.Book; publicclassDOM4j{ publicstaticvoidmain(Stringargs[])throwsException{ /** *第一步,得到document对象。 */ Documentdocument=getDocument(); /** *第二步,修改得到的document对象 */ /** *首先,读取功能 */ List<Book>books=readAllElementsFromXMLDocument(document); traverseBooks(books); /** *其次,修改功能修改内容:将id为b002的元素的title改为JavaCore,Price改为100.01 */ ModifyInformationOfXMLDocument(document); /** *再者:实现删除功能删除内容:删除掉id为book1的元素内容。 */ deleteInformationOfXMLDocument(document); /** *最后:实现添加i新元素功能添加内容:id为book3,title内容为:凤姐玉照,price内容为10000.00 */ addNewBookToXMLDocument(document); /** *第三步:将得到的document对象持久化保存到硬盘(XML) */ writeToNewXMLDocument(document); } /** *实现了添加新节点:book的功能 * *@paramdocument */ privatestaticvoidaddNewBookToXMLDocument(Documentdocument){ Elementroot=document.getRootElement(); ElementnewBook=root.addElement("book"); newBook.addAttribute("id","book3"); Elementtitle=newBook.addElement("title"); title.setText("凤姐玉照"); Elementprice=newBook.addElement("price"); price.setText("10000.01"); } /** *该方法实现了使用dom4j的删除元素的功能 * *@paramdocument */ privatestaticvoiddeleteInformationOfXMLDocument(Documentdocument){ Elementroot=document.getRootElement(); for(Iteratorit=root.elementIterator();it.hasNext();){ Elementbook=(Element)it.next(); Stringid=book.attributeValue("id"); if("book1".equals(id)){ Elementparent=book.getParent(); parent.remove(book); } } } /** *该方法的作用是修改document中的内容将id为b002的元素的title改为JavaCore,Price改为100.01 * *@paramdocument */ privatestaticvoidModifyInformationOfXMLDocument(Documentdocument){ Elementroot=document.getRootElement(); Listbooks=root.elements(); for(inti=0;i<books.size();i++){ Elementbook=(Element)books.get(i); if("book2".equals(book.attributeValue("id"))){ for(Iteratorit=book.elementIterator();it.hasNext();){ Elementnode=(Element)it.next(); Stringtype=node.getName(); if("title".equals(type)){ node.setText("JAVACore"); } if("price".equals(type)){ node.setText("100.01"); } } } } try{ writeToNewXMLDocument(document); }catch(Exceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } /** *遍历集合 * *@parambooks */ privatestaticvoidtraverseBooks(List<Book>books){ for(Iterator<Book>iterator=books.iterator();iterator.hasNext();){ Bookbook=iterator.next(); System.out.println(book); } } /** *该方法实现了对xml文档的读取功能 * *@paramdocument *@return */ privatestaticList<Book>readAllElementsFromXMLDocument(Documentdocument){ List<Book>books=newArrayList<Book>(); Elementroot=document.getRootElement(); Listlist=root.elements(); for(inti=0;i<list.size();i++){ Elementbook=(Element)list.get(i); Bookb=newBook(); Stringid=book.attributeValue("id"); Listll=book.elements(); b.setId(id); System.out.println(id); for(intj=0;j<ll.size();j++){ Elementelement=(Element)ll.get(j); if("title".equals(element.getName())){ Stringtitle=element.getText(); b.setTitle(title); System.out.println(title); } if("price".equals(element.getName())){ Stringprice=element.getText(); doublep=Double.parseDouble(price); b.setPrice(p); System.out.println(price); } } books.add(b); } returnbooks; } /** *通过document对象将内存中的dom树保存到新的xml文档。 * *@paramdocument *@throwsException */ privatestaticvoidwriteToNewXMLDocument(Documentdocument) throwsException{ XMLWriterwriter=newXMLWriter(newFileWriter( "src/com/zc/homeWork19/newbooks.xml")); writer.write(document); writer.close(); } /** *该方法用于得到document对象。 * *@return *@throwsException */ privatestaticDocumentgetDocument()throwsException{ SAXReadersr=newSAXReader(); Documentdocument=sr.read("src\\books.xml"); returndocument; } }
Book.java
packagecom.zc.homeWork19; publicclassBook{ publicStringtitle; publicdoubleprice; publicStringid; publicStringgetTitle(){ returntitle; } publicvoidsetTitle(Stringtitle){ this.title=title; } publicdoublegetPrice(){ returnprice; } publicvoidsetPrice(doubleprice){ this.price=price; } publicStringgetId(){ returnid; } publicvoidsetId(Stringid){ this.id=id; } publicStringtoString(){ return"图书ISBN为:"+id+"书名为:"+title+"价格为:"+price; } }
book.xml
<?xmlversion="1.0"encoding="UTF-8"?> <books> <bookid="book1"> <title>JAVA编程思想</title> <price>80.00</price> </book> <bookid="book2"> <title>JAVA编程理论</title> <price>100.00</price> </book> </books>
关于怎么在java中使用DOM4J对XML文件进行操作就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
目录
推荐阅读
0 条评论
本站已关闭游客评论,请登录或者注册后再评论吧~