dom4j操作xml的demo(分享)
废话不多说,直接上代码
packagecom.cn.shop.util; importjava.io.File; importjava.io.FileOutputStream; importjava.io.OutputStreamWriter; importjava.util.Iterator; importjava.util.List; importorg.dom4j.Attribute; importorg.dom4j.Document; importorg.dom4j.DocumentException; importorg.dom4j.DocumentHelper; importorg.dom4j.Element; importorg.dom4j.io.OutputFormat; importorg.dom4j.io.SAXReader; importorg.dom4j.io.XMLWriter; /** * *@authorNH * */ publicclassXmlUtils{ publicstaticDocumentgetDocument(){ //1.读取xml文件获取document对象 SAXReaderreader=newSAXReader(); Documentdocument=null; try{ document=reader.read("D:\\itext\\27663.xml"); }catch(DocumentExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } //2.通过解析xml的文本 /* *StringxmlFilePath="D:\\itext\\27663.xml";try{document= *DocumentHelper.parseText(xmlFilePath);}catch(DocumentExceptione) *{//TODOAuto-generatedcatchblocke.printStackTrace();}//3.通过 *Documentdocument=DocumentHelper.createDocument();Elementroot= *document.addElement("csdn"); */ returndocument; } publicstaticvoidanaXml()throwsException{ //读取xml的文本内容来创建document对象 SAXReaderreader=newSAXReader(); try{ Documentdocument=reader.read("D:\\itext\\27663.xml"); Elementroot=document.getRootElement(); System.out.println(root.getName()); getElement(root); /*elementMethod(root);*/ /* *//获取一个节点Elementelement=root.element("title"); * * *//获取element的id属性节点对象Attributeattr=element.attribute("id"); *//删除属性element.remove(attr); * *//添加新属性element.addAttribute("author","作者"); * *//添加新的节点ElementnewElement=root.addElement("where");// *设定新节点的值newElement.setText("北京人民出版社,天津人民大学出版社"); * *//获取element中的where元素节点对象Elementauthor= *element.element("where");//删除元素节点booleanflag= *element.remove(author);//返回true代码删除成功,否则失败 *System.out.println(flag);//添加CDATA区域 *element.addCDATA("红楼梦,是一部爱情小说.");//写入到一个新的文件中writer(document); */ }catch(DocumentExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } /* * *所有节点内容 */ publicstaticvoidgetElement(Elementroot){ //获取当前节点的所有属性节点 Listas=root.attributes(); for(Attributea:as){ System.out.println("当前属性节点的名称:"+a.getName()); /* *System.out.println("当前属性节点的内容:"+a.getText()); * *System.out.println("当前属性节点的值:"+a.getValue()); */ } if(!root.getTextTrim().equals("")){ System.out.println("文本内容::::"+root.getText()); } Iterator el=root.elementIterator(); while(el.hasNext()){ //获取某个子节点对象 Elemente=el.next(); //对子节点进行遍历 getElement(e); } } /** *介绍Element中的element方法和elements方法的使用 * *@paramnode */ publicstaticvoidelementMethod(Elementnode){ //获取node节点中,子节点的元素名称为西游记的元素节点。 Elemente=node.element("info"); //获取西游记元素节点中,子节点为chapter的元素节点(可以看到只能获取第一个作者元素节点) Elementauthor=e.element("classification"); System.out.println(e.getName()+"----"+author.getText()); //获取西游记这个元素节点中,所有子节点名称为classification元素的节点。 List authors=e.elements("classification"); for(Elementaut:authors){ System.out.println(aut.getText()); } //获取西游记这个元素节点所有元素的子节点。 List elements=e.elements(); for(Elementel:elements){ System.out.println(el.getText()); } } /** *把document对象写入新的文件 * *@paramdocument *@throwsException */ publicstaticvoidwriter(Documentdocument)throwsException{ //紧凑的格式 //OutputFormatformat=OutputFormat.createCompactFormat(); //排版缩进的格式 OutputFormatformat=OutputFormat.createPrettyPrint(); //设置编码 format.setEncoding("UTF-8"); //创建XMLWriter对象,指定了写出文件及编码格式 /* *XMLWriterwriter=newXMLWriter(newOutputStreamWriter(new *FileOutputStream(newFile("src//a.xml")),"UTF-8"),format); */ Filefile=newFile("c://index//大主宰.xml"); FileOutputStreamfos=newFileOutputStream(file); OutputStreamWriterosw=newOutputStreamWriter(fos,"UTF-8"); XMLWriterwriter=newXMLWriter(osw); //写入 writer.write(document); //立即写入 writer.flush(); //关闭操作 writer.close(); } //以下的代码为字符串与xml互转实例 publicvoidtest()throwsException{ //创建saxreader对象 SAXReaderreader=newSAXReader(); //读取一个文件,把这个文件转换成Document对象 Documentdocument=reader.read(newFile("src//c.xml")); //获取根元素 Elementroot=document.getRootElement(); //把文档转换字符串 StringdocXmlText=document.asXML(); System.out.println(docXmlText); System.out.println("---------------------------"); //csdn元素标签根转换的内容 StringrootXmlText=root.asXML(); System.out.println(rootXmlText); System.out.println("---------------------------"); //获取java元素标签内的内容 Elemente=root.element("java"); System.out.println(e.asXML()); } /** *创建一个document对象往document对象中添加节点元素转存为xml文件 * *@throwsException */ publicvoidtest2()throwsException{ Documentdocument=DocumentHelper.createDocument();//创建根节点 Elementroot=document.addElement("csdn"); Elementjava=root.addElement("java"); java.setText("java班"); Elementios=root.addElement("ios"); ios.setText("ios班"); writer(document); } /** *把一个文本字符串转换Document对象 * *@throwsException */ publicvoidtest1()throwsException{ Stringtext=" "; Documentdocument=DocumentHelper.parseText(text); Elemente=document.getRootElement(); System.out.println(e.getName()); writer(document); } /** *把document对象写入新的文件 * *@paramdocument *@throwsException */ publicvoidwriter1(Documentdocument)throwsException{ //紧凑的格式 //OutputFormatformat=OutputFormat.createCompactFormat(); //排版缩进的格式 OutputFormatformat=OutputFormat.createPrettyPrint(); //设置编码 format.setEncoding("UTF-8"); //创建XMLWriter对象,指定了写出文件及编码格式 //XMLWriterwriter=newXMLWriter(newFileWriter(new //File("src//a.xml")),format); XMLWriterwriter=newXMLWriter(newOutputStreamWriter(newFileOutputStream(newFile("src//c.xml")),"UTF-8"), format); //写入 writer.write(document); //立即写入 writer.flush(); //关闭操作 writer.close(); } publicstaticvoidmain(String[]args){ try{ anaXml(); }catch(Exceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } } Java班 Net班
以上这篇dom4j操作xml的demo(分享)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。