问题描述
如何将List的数据保存到XML中求代码!!!!!!!!!
解决方案
解决方案二:
PrintWriterout=response.getWriter();StringBufferstrBuffer=newStringBuffer();strBuffer.append("<?xmlversion="1.0"encoding="UTF-8"?>")strBuffer.append("<root>");strBuffer.append("<child>");strBuffer.append("<child>");strBuffer.append("<root>");out.print(strBuffer.toString());out.flush();out.close();
解决方案三:
用dom4j写呗
解决方案四:
可以具体点吗?我的数据是这样的List<bean>list=返回List的方法();谢谢!!!!!!!!!!!
解决方案五:
用dom4j写
解决方案六:
期待高手的更好的解决方案!
解决方案七:
publicvoidcreateXMLFile(StringfilePath,List<String>list){Documentdocument=DocumentHelper.createDocument();Elementelement=document.addElement("content");if(list!=null&&!list.isEmpty()){ElementbaseElement=element.addElement("base64Content");for(inti=0;i<list.size();i++){ElementdecoderElement=baseElement.addElement("decoder");decoderElement.addAttribute("show",String.valueOf(i));decoderElement.setText(list.get(i));}}try{OutputFormatoutFmt=newOutputFormat("t",true);outFmt.setEncoding("UTF-8");XMLWriterwriter=newXMLWriter(newFileOutputStream(filePath),outFmt);writer.write(document);writer.close();}catch(Exceptionex){ex.printStackTrace();}}
用dom4j写的,jar包你自己找吧,这里不能发
解决方案八:
这东西还要自己写啊,Java最大的好处就是库多,只要找找什么样的都有。自己写拼接麻烦容易错误而且还要对特殊字符&<之类的转译。推荐使用框架:用Jaxb或者XStream,Simple。http://www.blogjava.net/xmatthew/archive/2008/12/10/245558.html推荐使用XSTream小巧好用,一句就可以了。http://xstream.codehaus.org/
解决方案九:
Listlist=newArrayList();Documentdoc=DocumentHelper.createDocument();Elementroot=doc.addElement("root");for(inti=0;i<list.size();i++){Stringtemp=(String)list.get(i);Elementvalue=root.addElement("value");value.addText(temp);}doc.asXML();再用流的方式保存物理文件就好了,需要加载dom4的jar包
解决方案十:
用dom4j,循环
解决方案十一:
publicstaticvoidListToXml(Listlist)throwsIOException{doc=DocumentHelper.createDocument();doc.setXMLEncoding("UTF-8");Elementroot=doc.addElement("员工");for(Personperson:(List<Person>)list){Elementchild=root.addElement(person.getName());child.addAttribute("员工ID",person.getId());child.addAttribute("年龄",person.getAge()+"");child.addAttribute("员工职位",person.getJob());child.addAttribute("薪资",person.getSalary()+"");}OutputFormatformat=OutputFormat.createPrettyPrint();XMLWriterwriter=newXMLWriter(newFileWriter(newFile("e:\dom.xml")),format);writer.write(doc);writer.close();}
解决方案十二:
库多也不知道是好处还是坏处。。呵呵。。引用7楼yeriwei的回复:
这东西还要自己写啊,Java最大的好处就是库多,只要找找什么样的都有。自己写拼接麻烦容易错误而且还要对特殊字符&<之类的转译。推荐使用框架:用Jaxb或者XStream,Simple。http://www.blogjava.net/xmatthew/archive/2008/12/10/245558.html推荐使用XSTream小巧好用,一句就可以了。http:/……
解决方案十三:
什么格式的xmlpackagelist2xml;importorg.dom4j.io.SAXReader;importorg.dom4j.Document;importorg.dom4j.DocumentHelper;importorg.dom4j.Element;importorg.dom4j.io.XMLWriter;importjava.io.File;importjava.io.FileWriter;importjava.util.List;importjava.util.ArrayList;publicclasslist2xml{privateStringpath;//文件路径publicList<String>openFile(Stringpath){Listlist=null;this.path=path;ArrayList<String>returnlist=newArrayList<String>();try{SAXReadersaxReader=newSAXReader();Documentdocument=saxReader.read(newFile(path));//填充数据list=document.selectNodes("/do4j/list/data");for(Objectel:list){returnlist.add(((Element)el).getText());}}catch(Exceptionex){ex.printStackTrace();}return(List<String>)returnlist;}publicList<String>openFile(Stringpath,Listuserlist){this.path=path;Listlist=null;ArrayList<String>returnlist=newArrayList<String>();try{SAXReadersaxReader=newSAXReader();Documentdocument=saxReader.read(newFile(path));//填充数据list=document.selectNodes("/do4j/list/data");for(Objectel:list){returnlist.add(((Element)el).getText());}}catch(Exceptionex){ex.printStackTrace();}inti=0;for(Objectoo:userlist){setString(oo,returnlist.get(i++));}return(List)returnlist;}publicvoidsaveList(Stringpath,Listlist){this.path=path;Documentdocument=DocumentHelper.createDocument();Elementdo4jElement=document.addElement("do4j");ElementadminclassElement=do4jElement.addElement("adminclass");adminclassElement.setText("list2xml");ElementlistclassElement=do4jElement.addElement("list");ElementdataElement;for(inti=0;i<list.size();++i){dataElement=listclassElement.addElement("data");dataElement.addAttribute("id",""+i);dataElement.setText(getString(list.get(i)));}try{XMLWriterwriter=newXMLWriter(newFileWriter(newFile(path)));writer.write(document);writer.close();}catch(Exceptionex){ex.printStackTrace();}}publicStringgetString(Objecti){return(String)i;}//获得字符串publicvoidsetString(Objecti,Strings){s=(String)i;}//获得字符串}