仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1036|回复: 18
打印 上一主题 下一主题

[学习教程] JAVA编程:Java XML教程(附:源程序)

[复制链接]
再现理想 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:48:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
微软什么都提供了。你可以试想一下,如果你是新手,你是希望你点一下按钮程序就能运行那,还是想自己一点一点的组织结构,然后打包发部,调错再打包......xml|程序|教程sonnet.xml这是在本教程中贯串利用的示例XML文档。<?xmlversion="1.0"?><!DOCTYPEsonnetSYSTEM"sonnet.dtd"><sonnettype="Shakespearean"><author><last-name>Shakespeare</last-name><first-name>William</first-name><nationality>British</nationality><year-of-birth>1564</year-of-birth><year-of-death>1616</year-of-death></author><title>Sonnet130</title><text><line>Mymistress`eyesarenothinglikethesun,</line><line>Coralisfarmoreredthanherlipsred.</line><line>Ifsnowbewhite,whythenherbreastsaredun,</line><line>Ifhairsbewires,blackwiresgrowonherhead.</line><line>Ihaveseenrosesdamasked,redandwhite,</line><line>ButnosuchrosesseeIinhercheeks.</line><line>Andinsomeperfumesistheremoredelight</line><line>Thaninthebreaththatfrommymistressreeks.</line><line>Ilovetohearherspeak,yetwellIknow</line><line>Thatmusichathafarmorepleasingsound.</line><line>IgrantIneversawagoddessgo,</line><line>Mymistresswhenshewalks,treadsontheground.</line><line>Andyet,byHeaven,Ithinkmyloveasrare</line><line>Asanyshebeliedwithfalsecompare.</line></text></sonnet>sonnet.dtd这是我们示例文档所用的DTD。<!--sonnet.dtd--><!ELEMENTsonnet(author,title?,text)><!ATTLISTsonnettype(Shakespearean|Petrarchan)"Shakespearean"><!ELEMENTtext(line,line,line,line,line,line,line,line,line,line,line,line,line,line)><!ELEMENTauthor(last-name,first-name,nationality,year-of-birth?,year-of-death?)><!ELEMENTtitle(<!ELEMENTlast-name(<!ELEMENTfirst-name(<!ELEMENTnationality(<!ELEMENTyear-of-birth(<!ELEMENTyear-of-death(<!ELEMENTline(domOne.java这是我们的第一个DOM使用。它剖析一个XML文档并将其内容输入到尺度输入。/**(C)CopyrightIBMCorp.1999Allrightsreserved.**USGovernmentUsersRestrictedRightsUse,duplicationor*disclosurerestrictedbyGSAADPScheduleContractwithIBMCorp.**Theprogramisprovided"asis"withoutanywarrantyexpressor*implied,includingthewarrantyofnon-infringementandtheimplied*warrantiesofmerchantibilityandfitnessforaparticularpurpose.*IBMwillnotbeliableforanydamagessufferedbyyouasaresult*ofusingtheProgram.InnoeventwillIBMbeliableforany*special,indirectorconsequentialdamagesorlostprofitsevenif*IBMhasbeenadvisedofthepossibilityoftheiroccurrence.IBM*willnotbeliableforanythirdpartyclaimsagainstyou.*/importjava.io.OutputStreamWriter;importjava.io.PrintWriter;importjava.io.UnsupportedEncodingException;importorg.w3c.dom.Attr;importorg.w3c.dom.Document;importorg.w3c.dom.NamedNodeMap;importorg.w3c.dom.Node;importorg.w3c.dom.NodeList;importcom.ibm.xml.parsers.*;/***domOne.java*IllustrateshowtogothroughaDOMtree.*/publicclassdomOne{publicvoidparseAndPrint(Stringuri){Documentdoc=null;try{DOMParserparser=newDOMParser();parser.parse(uri);doc=parser.getDocument();}catch(Exceptione){System.err.println("Sorry,anerroroccurred:"+e);}//We`veparsedthedocumentnow,solet`sprintit.if(doc!=null)printDOMTree(doc);}/**Printsthespecifiednode,thenprintsallofitschildren.*/publicvoidprintDOMTree(Nodenode){inttype=node.getNodeType();switch(type){//printthedocumentelementcaseNode.DOCUMENT_NODE:{System.out.println("<?xmlversion="1.0"?>");printDOMTree(((Document)node).getDocumentElement());break;}//printelementwithattributescaseNode.ELEMENT_NODE:{System.out.print("<");System.out.print(node.getNodeName());NamedNodeMapattrs=node.getAttributes();for(inti=0;i<attrs.getLength();i++){Nodeattr=attrs.item(i);System.out.print(""+attr.getNodeName()+"=""+attr.getNodeValue()+""");}System.out.println(">");NodeListchildren=node.getChildNodes();if(children!=null){intlen=children.getLength();for(inti=0;i<len;i++)printDOMTree(children.item(i));}break;}//handleentityreferencenodescaseNode.ENTITY_REFERENCE_NODE:{System.out.print("&");System.out.print(node.getNodeName());System.out.print(";");break;}//printcdatasectionscaseNode.CDATA_SECTION_NODE:{System.out.print("<![CDATA[");System.out.print(node.getNodeValue());System.out.print("]]>");break;}//printtextcaseNode.TEXT_NODE:{System.out.print(node.getNodeValue());break;}//printprocessinginstructioncaseNode.PROCESSING_INSTRUCTION_NODE:{System.out.print("<?");System.out.print(node.getNodeName());Stringdata=node.getNodeValue();{System.out.print("");System.out.print(data);}System.out.print("?>");break;}}if(type==Node.ELEMENT_NODE){System.out.println();System.out.print("</");System.out.print(node.getNodeName());System.out.print(`>`);}}/**Mainprogramentrypoint.*/publicstaticvoidmain(Stringargv[]){if(argv.length==0){System.out.println("Usage:javadomOneuri");System.out.println("whereuriistheURIoftheXMLdocumentyouwanttoprint.");System.out.println("Sample:javadomOnesonnet.xml");System.exit(1);}domOned1=newdomOne();d1.parseAndPrint(argv[0]);}}domCounter.java这段代码剖析一个XML文档,然后遍历DOM树来收罗有关该文档的数据。当数据收罗后将其输入到尺度输入。/**(C)CopyrightIBMCorp.1999Allrightsreserved.**USGovernmentUsersRestrictedRightsUse,duplicationor*disclosurerestrictedbyGSAADPScheduleContractwithIBMCorp.**Theprogramisprovided"asis"withoutanywarrantyexpressor*implied,includingthewarrantyofnon-infringementandtheimplied*warrantiesofmerchantibilityandfitnessforaparticularpurpose.*IBMwillnotbeliableforanydamagessufferedbyyouasaresult*ofusingtheProgram.InnoeventwillIBMbeliableforany*special,indirectorconsequentialdamagesorlostprofitsevenif*IBMhasbeenadvisedofthepossibilityoftheiroccurrence.IBM*willnotbeliableforanythirdpartyclaimsagainstyou.*/importjava.io.OutputStreamWriter;importjava.io.PrintWriter;importjava.io.UnsupportedEncodingException;importorg.w3c.dom.Document;importorg.w3c.dom.Node;importorg.w3c.dom.NodeList;importcom.ibm.xml.parsers.DOMParser;/***domCounter.java*ThiscodecreatesaDOMparser,parsesadocument,then*printsstatisticsaboutthenumberandtypeofnodes*foundinthedocument.*/publicclassdomCounter{intdocumentNodes=0;intelementNodes=0;intentityReferenceNodes=0;intcdataSections=0;inttextNodes=0;intprocessingInstructions=0;publicvoidparseAndCount(Stringuri){Documentdoc=null;try{DOMParserparser=newDOMParser();parser.parse(uri);doc=parser.getDocument();}catch(Exceptione){System.err.println("Sorry,anerroroccurred:"+e);}//We`veparsedthedocumentnow,solet`sscantheDOMtreeand//printthestatistics.if(doc!=null){scanDOMTree(doc);System.out.println("DocumentStatisticsfor"+uri+":");System.out.println("====================================");System.out.println("DocumentNodes:"+documentNodes);System.out.println("ElementNodes:"+elementNodes);System.out.println("EntityReferenceNodes:"+entityReferenceNodes);System.out.println("CDATASections:"+cdataSections);System.out.println("TextNodes:"+textNodes);System.out.println("ProcessingInstructions:"+processingInstructions);System.out.println("----------");inttotalNodes=documentNodes+elementNodes+entityReferenceNodes+cdataSections+textNodes+processingInstructions;System.out.println("Total:"+totalNodes+"Nodes");}}/**ScanstheDOMtreeandcountsthedifferenttypesofnodes.*/publicvoidscanDOMTree(Nodenode){inttype=node.getNodeType();switch(type){caseNode.DOCUMENT_NODE:documentNodes++;scanDOMTree(((Document)node).getDocumentElement());break;caseNode.ELEMENT_NODE:elementNodes++;NodeListchildren=node.getChildNodes();if(children!=null){intlen=children.getLength();for(inti=0;i<len;i++)scanDOMTree(children.item(i));}break;caseNode.ENTITY_REFERENCE_NODE:entityReferenceNodes++;break;caseNode.CDATA_SECTION_NODE:cdataSections++;break;caseNode.TEXT_NODE:textNodes++;break;caseNode.PROCESSING_INSTRUCTION_NODE:processingInstructions++;break;}}/**Mainprogramentrypoint.*/publicstaticvoidmain(Stringargv[]){if(argv.length==0){System.out.println("Usage:javadomCounteruri");System.out.println("whereuriistheURIofyourXMLdocument.");System.out.println("Sample:javadomCountersonnet.xml");System.exit(1);}domCounterdc=newdomCounter();dc.parseAndCount(argv[0]);}}saxOne.java/**(C)CopyrightIBMCorp.1999Allrightsreserved.**USGovernmentUsersRestrictedRightsUse,duplicationor*disclosurerestrictedbyGSAADPScheduleContractwithIBMCorp.**Theprogramisprovided"asis"withoutanywarrantyexpressor*implied,includingthewarrantyofnon-infringementandtheimplied*warrantiesofmerchantibilityandfitnessforaparticularpurpose.*IBMwillnotbeliableforanydamagessufferedbyyouasaresult*ofusingtheProgram.InnoeventwillIBMbeliableforany*special,indirectorconsequentialdamagesorlostprofitsevenif*IBMhasbeenadvisedofthepossibilityoftheiroccurrence.IBM*willnotbeliableforanythirdpartyclaimsagainstyou.*/importjava.io.OutputStreamWriter;importjava.io.PrintWriter;importjava.io.UnsupportedEncodingException;importorg.xml.sax.AttributeList;importorg.xml.sax.HandlerBase;importorg.xml.sax.Parser;importorg.xml.sax.SAXException;importorg.xml.sax.SAXParseException;importorg.xml.sax.helpers.ParserFactory;importcom.ibm.xml.parsers.SAXParser;/***saxOne.java*ThissampleprogramillustrateshowtouseaSAXparser.It*parsesadocumentandwritesthedocument?contentsbackto*standardoutput.*/publicclasssaxOneextendsHandlerBase{publicvoidparseURI(Stringuri){SAXParserparser=newSAXParser();parser.setDocumentHandler(this);parser.setErrorHandler(this);try{parser.parse(uri);}catch(Exceptione){System.err.println(e);}}/**Processinginstruction.*/publicvoidprocessingInstruction(Stringtarget,Stringdata){System.out.print("<?");System.out.print(target);if(data!=null&&data.length()>0){System.out.print(``);System.out.print(data);}System.out.print("?>");}/**Startdocument.*/publicvoidstartDocument(){System.out.println("<?xmlversion="1.0"?>");}/**Startelement.*/publicvoidstartElement(Stringname,AttributeListattrs){System.out.print("<");System.out.print(name);if(attrs!=null){intlen=attrs.getLength();for(inti=0;i<len;i++){System.out.print("");System.out.print(attrs.getName(i));System.out.print("="");System.out.print(attrs.getValue(i));System.out.print(""");}}System.out.print(">");}/**Characters.*/publicvoidcharacters(charch[],intstart,intlength){System.out.print(newString(ch,start,length));}/**Ignorablewhitespace.*/publicvoidignorableWhitespace(charch[],intstart,intlength){characters(ch,start,length);}/**Endelement.*/publicvoidendElement(Stringname){System.out.print("</");System.out.print(name);System.out.print(">");}/**Enddocument.*/publicvoidendDocument(){//Noneedtodoanything.}////ErrorHandlermethods///**Warning.*/publicvoidwarning(SAXParseExceptionex){System.err.println("[Warning]"+getLocationString(ex)+":"+ex.getMessage());}/**Error.*/publicvoiderror(SAXParseExceptionex){System.err.println("[Error]"+getLocationString(ex)+":"+ex.getMessage());}/**Fatalerror.*/publicvoidfatalError(SAXParseExceptionex)throwsSAXException{System.err.println("[FatalError]"+getLocationString(ex)+":"+ex.getMessage());throwex;}/**Returnsastringofthelocation.*/privateStringgetLocationString(SAXParseExceptionex){StringBufferstr=newStringBuffer();StringsystemId=ex.getSystemId();if(systemId!=null){intindex=systemId.lastIndexOf(`/`);if(index!=-1)systemId=systemId.substring(index+1);str.append(systemId);}str.append(`:`);str.append(ex.getLineNumber());str.append(`:`);str.append(ex.getColumnNumber());returnstr.toString();}/**Mainprogramentrypoint.*/publicstaticvoidmain(Stringargv[]){if(argv.length==0){System.out.println("Usage:javasaxOneuri");System.out.println("whereuriistheURIofyourXMLdocument.");System.out.println("Sample:javasaxOnesonnet.xml");System.exit(1);}saxOnes1=newsaxOne();s1.parseURI(argv[0]);}}saxCounter.java/**(C)CopyrightIBMCorp.1999Allrightsreserved.**USGovernmentUsersRestrictedRightsUse,duplicationor*disclosurerestrictedbyGSAADPScheduleContractwithIBMCorp.**Theprogramisprovided"asis"withoutanywarrantyexpressor*implied,includingthewarrantyofnon-infringementandtheimplied*warrantiesofmerchantibilityandfitnessforaparticularpurpose.*IBMwillnotbeliableforanydamagessufferedbyyouasaresult*ofusingtheProgram.InnoeventwillIBMbeliableforany*special,indirectorconsequentialdamagesorlostprofitsevenif*IBMhasbeenadvisedofthepossibilityoftheiroccurrence.IBM*willnotbeliableforanythirdpartyclaimsagainstyou.*/importjava.io.OutputStreamWriter;importjava.io.PrintWriter;importjava.io.UnsupportedEncodingException;importorg.xml.sax.AttributeList;importorg.xml.sax.HandlerBase;importorg.xml.sax.Parser;importorg.xml.sax.SAXException;importorg.xml.sax.SAXParseException;importorg.xml.sax.helpers.ParserFactory;importcom.ibm.xml.parsers.SAXParser;/***saxCounter.java*ThissampleprogramcalculatesstatisticsforanXMLdocument,*basedontheSAXeventsreceived.Whentheparseiscomplete,*itprintsthestatisticstostandardoutput.*/publicclasssaxCounterextendsHandlerBase{intstartDocumentEvents=0;intendDocumentEvents=0;intstartElementEvents=0;intendElementEvents=0;intprocessingInstructionEvents=0;intcharacterEvents=0;intignorableWhitespaceEvents=0;intwarningEvents=0;interrorEvents=0;intfatalErrorEvents=0;publicvoidparseURI(Stringuri){SAXParserparser=newSAXParser();parser.setDocumentHandler(this);parser.setErrorHandler(this);try{parser.parse(uri);}catch(Exceptione){System.err.println(e);}System.out.println("DocumentStatisticsfor"+uri+":");System.out.println("====================================");System.out.println("DocumentHandlerEvents:");System.out.println("startDocument"+startDocumentEvents);System.out.println("endDocument"+endDocumentEvents);System.out.println("startElement"+startElementEvents);System.out.println("endElement"+endElementEvents);System.out.println("processingInstruction"+processingInstructionEvents);System.out.println("character"+characterEvents);System.out.println("ignorableWhitespace"+ignorableWhitespaceEvents);System.out.println("ErrorHandlerEvents:");System.out.println("warning"+warningEvents);System.out.println("error"+errorEvents);System.out.println("fatalError"+fatalErrorEvents);System.out.println("----------");inttotalEvents=startDocumentEvents+endDocumentEvents+startElementEvents+endElementEvents+processingInstructionEvents+characterEvents+ignorableWhitespaceEvents+warningEvents+errorEvents+fatalErrorEvents;System.out.println("Total:"+totalEvents+"Events");}/**Processinginstruction.*/publicvoidprocessingInstruction(Stringtarget,Stringdata){processingInstructionEvents++;}/**Startdocument.*/publicvoidstartDocument(){startDocumentEvents++;}/**Startelement.*/publicvoidstartElement(Stringname,AttributeListattrs){startElementEvents++;}/**Characters.*/publicvoidcharacters(charch[],intstart,intlength){characterEvents++;}/**Ignorablewhitespace.*/publicvoidignorableWhitespace(charch[],intstart,intlength){ignorableWhitespaceEvents++;}/**Endelement.*/publicvoidendElement(Stringname){endElementEvents++;}/**Enddocument.*/publicvoidendDocument(){endDocumentEvents++;}////ErrorHandlermethods///**Warning.*/publicvoidwarning(SAXParseExceptionex){warningEvents++;}/**Error.*/publicvoiderror(SAXParseExceptionex){errorEvents++;}/**Fatalerror.*/publicvoidfatalError(SAXParseExceptionex)throwsSAXException{fatalErrorEvents++;throwex;}/**Mainprogramentrypoint.*/publicstaticvoidmain(Stringargv[]){if(argv.length==0){System.out.println("Usage:javasaxCounteruri");System.out.println("whereuriistheURIofyourXMLdocument.");System.out.println("Sample:javasaxCountersonnet.xml");System.exit(1);}saxCountersc=newsaxCounter();sc.parseURI(argv[0]);}}
但是对于JAVA技术类的学习,我觉得大课堂反而会影响自身独立思考的过程,因为上课的时候,老师讲课的速度很快为了不遗漏要点,通常会仔细的听,
愤怒的大鸟 该用户已被删除
沙发
发表于 2015-1-21 15:15:51 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
小魔女 该用户已被删除
板凳
发表于 2015-1-29 12:52:10 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
乐观 该用户已被删除
地板
发表于 2015-2-6 01:03:47 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
蒙在股里 该用户已被删除
5#
发表于 2015-2-7 18:17:19 | 只看该作者
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
透明 该用户已被删除
6#
发表于 2015-2-10 12:27:22 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
爱飞 该用户已被删除
7#
发表于 2015-2-17 09:13:50 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
山那边是海 该用户已被删除
8#
发表于 2015-3-11 04:49:57 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
柔情似水 该用户已被删除
9#
发表于 2015-3-12 11:00:03 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
变相怪杰 该用户已被删除
10#
发表于 2015-3-15 21:47:53 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
若天明 该用户已被删除
11#
发表于 2015-3-17 00:10:08 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
飘灵儿 该用户已被删除
12#
发表于 2015-3-18 03:44:55 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
第二个灵魂 该用户已被删除
13#
发表于 2015-3-25 11:15:52 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
海妖 该用户已被删除
14#
发表于 2015-3-27 21:11:28 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
金色的骷髅 该用户已被删除
15#
发表于 2015-4-3 00:34:35 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
不帅 该用户已被删除
16#
发表于 2015-4-3 03:48:05 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
分手快乐 该用户已被删除
17#
发表于 2015-4-3 05:28:10 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
因胸联盟 该用户已被删除
18#
发表于 2015-4-5 04:43:11 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
简单生活 该用户已被删除
19#
发表于 2015-4-6 18:09:12 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 21:16

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表