问题描述
毕业设计,要开发一个图书馆文献采购软件。现在把书目写入了XML文件,如下:<books><book><ISBN>978-7-03-020860-6</ISBN><三目号>00028090041</三目号><题名>概率论与数理统计教程</题名><第一责任说明>李子强</第一责任说明><出版社>科学出版社</出版社><出版地>北京</出版地><出版日期>2008.01</出版日期><开本>32开</开本><页数>364页</页数><定估价>CNY34.90</定估价><读者对象>本科生,研究生,教师</读者对象><主题词>概率论</主题词><内容简介>本书共分3篇,第1篇(第1-5章)为概率论部分,主要包括概率论的基本概念、一维和二维随机变量及其分析等内容,第2篇(第6-10章)为数理统计部分,主要包括数理统计的基本概念、参数估计、假设检验、回归分析与方差分析等内容;第3篇(第11、12章)为应用部分,包括概率论与数理统计在实际中的应用以及统计分析软件ASA的简单介绍与应用举例。</内容简介><分类号>O1</分类号><作品语种>chi</作品语种></book><book><ISBN>978-7-03-020338-0</ISBN><三目号>00028090199</三目号><题名>现代机械工程图学题典</题名><第一责任说明>黄丽</第一责任说明><出版社>科学出版社</出版社><出版地>北京</出版地><出版日期>2007.09</出版日期><开本>16开</开本><页数>176页</页数><定估价>CNY19.00</定估价><读者对象>本科生,研究生,教师</读者对象><主题词>画法几何,习题辅导</主题词><内容简介>全书在习题选编上,除画法几何部分建立和巩固空间想像力方面的训练,同时还加强了对基本形体、基本组合体空间想像力方面的训练,充分提高和培养读者的分析与空间想像力,在些基础上通过对机件的表达方法,零件图和装配图的练习进一步提高制图的能力。</内容简介><分类号>TH</分类号><作品语种>chi</作品语种></book><book><ISBN>978-7-03-020504-9</ISBN><三目号>00028090280</三目号><题名>生活垃圾管理与处理技术</题名><第一责任说明>薛强,陈朱蕾</第一责任说明><出版社>科学出版社</出版社><出版地>北京</出版地><出版日期>2007.12</出版日期><开本>16开</开本><页数>348页</页数><定估价>CNY120.00</定估价><读者对象>高校师生</读者对象><主题词>环境</主题词><内容简介>本书介绍了城市生活垃圾管理与处理的政策法规。全书分为上下两篇,分别为综述与研究、技术与应用、附录摘编了相应的政策与法规。</内容简介><分类号>X</分类号><作品语种>chi</作品语种></book></books>现在要求筛选,将开本小于16开的书删除,然后将新的书单写入新的XML文件。请问用Java语言如何实现?
解决方案
解决方案二:
Dom4j
解决方案三:
jdomdom4jjaximportjava.io.File;importjava.io.IOException;importjava.util.List;importorg.dom4j.DocumentException;importorg.dom4j.io.SAXReader;importorg.jdom.Document;importorg.jdom.Element;importorg.jdom.JDOMException;importorg.jdom.input.SAXBuilder;publicclassJdom{publicstaticvoidmain(String[]args){Longlasting=System.currentTimeMillis();SAXBuilderreader=newSAXBuilder();Documentdoc=null;try{doc=(Document)reader.build(newFile("D:\workspace\test\src\clothes.xml"));}catch(JDOMExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}catch(IOExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}Elementaa=doc.getRootElement();Elementbb;Listall=aa.getChildren();for(inti=0;i<all.size();i++){bb=(Element)all.get(i);System.out.print(bb.getChildText("店名"));}}}
importjava.io.File;importjava.util.Iterator;importorg.dom4j.Document;importorg.dom4j.DocumentException;importorg.dom4j.Element;importorg.dom4j.io.SAXReader;publicclassDom4j{publicstaticvoidmain(String[]args){SAXReaderreader=newSAXReader();Filef=newFile("D:\workspace\test\src\clothes.xml");Documentdoc=null;try{doc=reader.read(f);}catch(DocumentExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}Elementroot=doc.getRootElement();Elementfoo;for(Iteratori=root.elementIterator("服装店");i.hasNext();){foo=(Element)i.next();System.out.print(foo.elementText("店名")+"");System.out.print(foo.elementText("老板")+"");System.out.print(foo.elementText("地址")+"");System.out.print(foo.elementText("规模")+"");System.out.println();}}}
解决方案四:
真有空...路过吧
解决方案五:
引用2楼ymdcr的回复:
jdomdom4jjaxJavacodeimportjava.io.File;importjava.io.IOException;importjava.util.List;importorg.dom4j.DocumentException;importorg.dom4j.io.SAXReader;importorg.jdom.Documen……
up!
解决方案六:
解决方案七:
你参考一下这个吧。------------students.xml------------------<?xmlversion="1.0"?><students><studentid="1"age="20"gender="1">zhangsan</student><studentid="2"age="21"gender="2">lisi</student></students>-------------XMLParser--------------importjava.io.File;importjava.io.FileWriter;importjava.io.IOException;importjava.util.ArrayList;importjava.util.Iterator;importjava.util.List;importorg.jdom.Attribute;importorg.jdom.Document;importorg.jdom.Element;importorg.jdom.JDOMException;importorg.jdom.input.SAXBuilder;importorg.jdom.output.Format;importorg.jdom.output.XMLOutputter;/***XML解析*http://www.juheit.com*/publicclassXMLParser{/***读XML文件到内存*/publicDocumentreadXML(StringfileName){try{SAXBuildersaxb=newSAXBuilder();returnsaxb.build(newFile(fileName));}catch(JDOMExceptionjde){jde.printStackTrace();}catch(IOExceptionjde){jde.printStackTrace();}returnnull;}/***写Document到文件中*/publicvoidwriteXMLTOFile(Documentdoc,StringfileName){try{XMLOutputterxo=newXMLOutputter(Format.getPrettyFormat());xo.output(doc,newFileWriter(newFile(fileName)));}catch(IOExceptionjde){jde.printStackTrace();}}/***查询所有student的name*/publicListgetStudentNameList(Documentdoc){//得到根元素Elementroot=doc.getRootElement();System.out.println("root:"+root);//定义目标ListListtargetList=newArrayList();//取得根元素的孩子ListstudentElementList=root.getChildren("student");if(studentElementList!=null){//进行迭代IteratorstudentElementIterator=studentElementList.iterator();while(studentElementIterator.hasNext()){ElementstudentElement=(Element)studentElementIterator.next();//取得属性Attributeattr=studentElement.getAttribute("age");System.out.println(attr.getName()+":"+attr.getValue());//取得元素的TextStringstudentName=studentElement.getText();targetList.add(studentName);}}returntargetList;}/***直接创建文档树*/publicDocumentcreateDocument(){//创建根元素Elementroot=newElement("app");Documentdoc=newDocument(root);returndoc;}/***添加一个student元素*/publicvoidinsertStudentElement(Documentdoc,Stringname,intage,intid,intgender){//得到根元素Elementroot=doc.getRootElement();System.out.println("root:"+root);//创建student元素ElementstudentElement=newElement("student");//添加到根root.addContent(studentElement);//设置名字studentElement.setText(name);//创建Attribute集合ListattrList=newArrayList();//设置属性Attributeattr=newAttribute("age",""+age);attrList.add(attr);attr=newAttribute("id",""+id);attrList.add(attr);attr=newAttribute("gender",""+gender);attrList.add(attr);studentElement.setAttributes(attrList);}/***复制添加一个student元素*/publicvoidcopyStudentElementToDocument(Documentdoc){//得到根元素Elementroot=doc.getRootElement();System.out.println("root:"+root);//获得第一个元素ElementfirstStudentElement=root.getChild("student");//复制元素ElementcopiedStudentElement=(Element)firstStudentElement.clone();copiedStudentElement.setText("zhaoliu");//修改namecopiedStudentElement.getAttribute("id").setValue("4");//修改idroot.addContent(copiedStudentElement);//添加到树}/***修改指定的学生姓名*/publicvoidupdateStudentNameByStudentId(Documentdoc,intid,Stringname){//得到根元素Elementroot=doc.getRootElement();System.out.println("root:"+root);//定义目标学生ElementtargetElement=null;//取得根元素的孩子ListstudentElementList=root.getChildren("student");if(studentElementList!=null){//进行迭代IteratorstudentElementIterator=studentElementList.iterator();while(studentElementIterator.hasNext()){ElementstudentElement=(Element)studentElementIterator.next();//取得属性Attributeattr=studentElement.getAttribute("id");System.out.println(attr.getName()+":"+attr.getValue());if(attr.getValue()!=null&&attr.getValue().trim().equals(""+id)){targetElement=studentElement;break;}}}if(targetElement!=null){targetElement.setText(name);}}/***删除指定的学生*/publicvoiddeleteStudentElementByStudentId(Documentdoc,intid){//得到根元素Elementroot=doc.getRootElement();System.out.println("root:"+root);//定义目标学生ElementtargetElement=null;//取得根元素的孩子ListstudentElementList=root.getChildren("student");if(studentElementList!=null){//进行迭代IteratorstudentElementIterator=studentElementList.iterator();while(studentElementIterator.hasNext()){ElementstudentElement=(Element)studentElementIterator.next();//取得属性Attributeattr=studentElement.getAttribute("id");System.out.println(attr.getName()+":"+attr.getValue());if(attr.getValue()!=null&&attr.getValue().trim().equals(""+id)){targetElement=studentElement;break;}}}root.removeContent(targetElement);}publicstaticvoidmain(String[]args){//读XMLDocumentdoc=newXMLParser().readXML("students.xml");System.out.println("doc:"+doc);//添加元素newXMLParser().insertStudentElement(doc,"wangwu",24,3,1);//复制元素并添加到树newXMLParser().copyStudentElementToDocument(doc);//修改元素newXMLParser().updateStudentNameByStudentId(doc,2,"mada");//删除指定的元素newXMLParser().deleteStudentElementByStudentId(doc,3);//写XMLnewXMLParser().writeXMLTOFile(doc,"studentinfo.xml");System.out.println(newXMLParser().getStudentNameList(doc));//直接输出成字符串的形式StringdocStr=newXMLOutputter().outputString(doc);System.out.println("docStr:"+docStr);}}
解决方案八:
路过帮顶。。。
解决方案九:
JAVA网www.shlisa.com
解决方案十:
sax,dom
解决方案十一:
Thinkinginjava作者推荐xom