仓酷云
标题:
JAVA网站制作之java 的jdom利用类
[打印本页]
作者:
变相怪杰
时间:
2015-1-18 11:52
标题:
JAVA网站制作之java 的jdom利用类
Java的B/s开发是通常是javaweb开发,又叫J2EE开发,J2SE是手机开发。C#的C/s和B/s开发是说.net和Asp开发。。u在这里说明一点;资深一点的Java和C#程序员都明白一点dom/*************************************************************
*功效完成对xml文件的创建,增,删,改,显现,查找(值比对)
*如今只撑持二级标签天生
*<根>
*<一级标签>
*<二级标签>值<二级标签/>
*<二级标签>值<二级标签/>
*<一级标签/>
*<根/>
*main()为利用小样
***************************************************************
*@authorsanshi
*Create2005/06/09
*感激:张山,梅春,花开石头(任何匡助:包含精力优待和精神践踏)
****************************************************************
*@paramfileName文件名
*@paramcreate文件不存在是不是创建,默许为false(不创建)
*@paramroot创建文件利用,代表根元素
*@paramchild创建文件利用,代表一级标签
*@paramtwoChild创建文件利用,代表二级标签。款式a[0][0]="标署名",a[0][1]="标签值"
*@paramdebug是不是打印调试信息,对全部类有感化,默许为false不打印
*/
importorg.jdom.output.XMLOutputter;
importorg.jdom.Document;
importorg.jdom.Element;
importjava.util.List;
importorg.jdom.output.Format;
importorg.jdom.input.SAXBuilder;
importjava.io.File;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.io.FileInputStream;
publicclassXMLWork{
privateStringfileName;//文件名
privatebooleancreate=false;//文件不存在是不是创建
privateStringroot;//xml的根
privateStringchild;//一级标签
privateString[][]twoChild;//二级标签
privatebooleandebug=true;//是不是打印调试信息
/**********************调试入手下手***********************************/
publicstaticvoidmain(Stringargs[]){
String[][]a=newString[2][2];
a[0][0]="name";
a[0][1]="sanshi";
a[1][0]="count";
a[1][1]="1";
XMLWorkt=newXMLWork();
t.XMLWork("zl.xml",2,true);//第一步设置参数
t.setTga("root","child",a);//创建文件设置标签
//t.creatXMLFile();
String[]value=newString[2];
value[0]="sanshi";
value[1]="3";
t.showAllElement(1,0);//
if(t.isFindElement(value))
{
System.out.println("找到了!");
}else{
System.out.println("没找到!");
}
//t.editXMLElement(0,value);
//t.addXMLElement(value);
//t.delectXMLElement(0);
}
/*************************调试停止*******************************/
/**
*设置是不是打印调试信息
*@parambooleandebugfalse/不打印ture/打印
*/
publicvoidsetDebug(booleandebug){
this.debug=debug;
}
/**
*获得以后的调试信息
*@returnboolean
*/
publicbooleangetDebug(){
returndebug;
}
//判别文件名和一些经常使用变量是不是存在
publicbooleanisTrue(){
booleancheck=true;
if(fileName==null||root==null||child==null||
twoChild.length<=0){
check=false;
}
returncheck;
}
//初始化
publicXMLWork(){}
/**
*判别输出文件名的正当性
*@paramStringfileName文件名字/翻开大概创建
*@paramintlist二级标签的巨细
*@parambooleamcrrate假如不存在是不是创建新文件
*/
publicvoidXMLWork(StringfileName,intlist,booleancreate){
if(fileName==null||fileName.length()<=0){
System.out.println("你没有输出文件名");
System.exit(0);
}
elseif(fileName.indexOf(".xml")<=0){
System.out.println("你输出文件名不准确");
System.exit(0);
}
else{
this.fileName=fileName;
this.create=create;
String[][]children=newString
[list]
[list];
this.twoChild=children;
//调试信息输入
if(debug){
System.out.println("文件名设置乐成=====>"+fileName);
System.out.println("二级标签共有=======>"+list+"个");
}
}
}
//标签设置
publicvoidsetTga(Stringroot,Stringchild,String[][]twoChild){
if(root==null||child==null){
System.out.println("你没有输出根标签大概是一级标签");
System.exit(0);
}
elseif(twoChild.length<=0){
System.out.println("你没有输出二级标签");
System.exit(0);
}
else{
this.root=root;
this.child=child;
this.twoChild=twoChild;
if(debug){//调试信息输入
System.out.println("标签设置乐成!");
System.out.println("根标签为==>"+root);
System.out.println("一级标签为==>"+child);
System.out.println(twoChild[0][0]+"====>"+twoChild[0][1]);
System.out.println(twoChild.length);
}
}
}
//判别您传送最近的文件是不是为无效
privatebooleanisFile(){
Filefile=newFile(fileName);
returnfile.exists();
}
publicvoidprintDebug(){
if(!isTrue()){
System.out.println("短少参数");
System.exit(0);
}
if(isFile()){
//System.out.println("文件文法翻开");
//System.exit(0);
}
}
publicvoidcreatXMLFile(){
printDebug();
//这以下依据需求变动------入手下手
Elementnewroot=newElement(root);//设置根标签
Elementnewchild=newElement(child);//设置单位标签//根下一级
for(inti=0;i<twoChild.length;i++){
Elementcount=newElement(twoChild[i][0]);//根下二级
count.setText(twoChild[i][1]);//设置二级标签的值<二级标签>值<二级标签/>
//count.setAttribute("属性名","属性值");//增加一个属性
newchild.addContent(count);//把二级增加到一级
}
newroot.addContent(newchild);//把一级增加到根
Documentdoc=newDocument(newroot);//把根写到document
//设置天生wml
//doc.setDocType(newDocType("wml","-//WAPFORUM//DTDWML1.1//EN","http://www.wapforum.com/DTD/wml_1.1.xml"));
//依据需求变动停止
XMLOutputterxmlOut=newXMLOutputter();//天生xml的输入流
Formatformat=xmlOut.getFormat();//把输入流格局化
format.setEncoding("GBK");//设置字符集
format.setExpandEmptyElements(true);//是不是添补
xmlOut.setFormat(format);//把格局化的流给输入流
try{
//天生xml的文件,文件名为用户输出的文件
xmlOut.output(doc,newFileOutputStream(fileName));
System.out.println("文件创建乐成文件名===>"+fileName);
}
catch(IOExceptionex){
System.out.println("filecreatefailing"+ex.getMessage());
}
}
/**
*此办法只是增添流动标签的值,在最初增加,假如文件不存在,而批准创建的话话创建
*@paramString[]value增加值的数组,按二级标签按次寄存
*/
publicvoidaddXMLElement(String[]value){
printDebug();
if(!this.isFile()&&create){//翻开失利创建
creatXMLFile();
}
//入手下手增加
FileInputStreamfi=null;//文件输出流
FileOutputStreamfo=null;//文件输入流
Filefile=newFile(fileName);
try{
fi=newFileInputStream(file);//创建翻开流
SAXBuildersb=newSAXBuilder();
Documentdoc=sb.build(fi);//把文件流给build
Elementroot=doc.getRootElement();//失掉根元素
Listchildsum=root.getChildren();//失掉根元素的汇合
Elementnewchild=newElement(child);
for(inti=0;i<twoChild.length;i++){
//天生新元素
Elementnewcount=newElement(twoChild[i][0]);
newcount.setText(value[i]);
newchild.addContent(newcount);//在新根下增加新元素
}
childsum.add(newchild);//在xml文件里增加新的工具
XMLOutputterxmlOut=newXMLOutputter();
Formatformat=xmlOut.getFormat();
format.setEncoding("GBK");//设置字符集
format.setExpandEmptyElements(true);//翻开增加
format.setIndent("");//设置支解符
//format.setOmitDeclaration(true);//是不是增加头信息
xmlOut.setFormat(format);
fo=newFileOutputStream(file);
xmlOut.output(doc,fo);
if(debug){
System.out.println("增加乐成");
}
}
catch(Exceptione){
System.out.println("文件翻开失利,文件名为:"+fileName+"<==>毛病缘故原由为:"+
e.getMessage());
}
finally{
try{
fi.close();
fo.close();
}
catch(Exceptione){
e.printStackTrace();
}
}
}
/**
*此办法删除指定的值,也就是xml中的第几个孩子
*@paramElementID为孩子id。xml默许从0入手下手
*/
publicvoiddelectXMLElement(intElementID){
//printDebug();
FileInputStreamfi=null;//文件输出流
FileOutputStreamfo=null;//文件输入流
Filefile=newFile(fileName);
try{
if(!this.isFile()){//文件翻开失利
System.out.println("文件翻开失利,文件名为:"+fileName);
}
else{
fi=newFileInputStream(file);//创建翻开流
SAXBuildersb=newSAXBuilder();
Documentdoc=sb.build(fi);//把文件流给build
Elementroot=doc.getRootElement();//失掉根元素
Listchildsum=root.getChildren();//失掉根元素的汇合
if(ElementID>=childsum.size()){
System.out.println("凌驾长度!");
System.exit(0);
}
childsum.remove(ElementID);
XMLOutputterxmlOut=newXMLOutputter();
Formatformat=xmlOut.getFormat();
format.setEncoding("GBK");//设置字符集
format.setExpandEmptyElements(true);//翻开增加
format.setIndent("");//设置支解符
//format.setOmitDeclaration(true);//是不是增加头信息
xmlOut.setFormat(format);
fo=newFileOutputStream(file);
xmlOut.output(doc,fo);
if(debug){
System.out.println("删除乐成");
}
}
}
catch(Exceptione){
System.out.println("文件翻开失利,文件名为:"+fileName+"<==>毛病缘故原由为:"+
e.getMessage());
}
finally{
try{
fi.close();
fo.close();
}
catch(Exceptione){
e.printStackTrace();
}
}
}
/**
*此办法编纂指定的值,也就是xml中的第几个孩子
*@paramElementID为孩子id。xml默许从0入手下手
*@paramvalue数组为修正为的值
*/
publicvoideditXMLElement(intelementID,String[]value){
FileInputStreamfi=null;//文件输出流
FileOutputStreamfo=null;//文件输入流
try{
if(!this.isFile()){//文件翻开失利
System.out.println("文件翻开失利,文件名为:"+fileName);
}
else{
fi=newFileInputStream(fileName);//创建翻开流
SAXBuildersb=newSAXBuilder();
Documentdoc=sb.build(fi);//把文件流给build
Elementroot=doc.getRootElement();//失掉根元素
Listchildsum=root.getChildren();//失掉根元素的汇合
if(elementID>=childsum.size()){
System.out.println("凌驾长度!");
System.exit(0);
}
Elementedit=(Element)childsum.get(elementID);//选择编纂元素
for(inti=0;i<twoChild.length;i++){
Elementnewname=edit.getChild(twoChild[i][0]);//天生新的标签
newname.setText(value[i]);//设置新值
}
childsum.set(elementID,edit);//修正
XMLOutputterxmlOut=newXMLOutputter();
Formatformat=xmlOut.getFormat();
//format.setEncoding("GBK");
format.setExpandEmptyElements(true);
format.setIndent("");
//format.setOmitDeclaration(true);
xmlOut.setFormat(format);
fo=newFileOutputStream(fileName);
xmlOut.output(doc,fo);
if(debug){
System.out.println("编纂乐成");
}
}
}
catch(Exceptione){
System.out.println("文件翻开失利,文件名为:"+fileName+"<==>毛病缘故原由为:"+
e.getMessage());
}
finally{
try{
fi.close();
fo.close();
}
catch(Exceptione){
e.printStackTrace();
}
}
}
/**
*@paramintstart传进入手下手输入的项
*@paramintend停止输入的项,为0暗示最初一个。
*/
publicvoidshowAllElement(intstart,intend)
{
FileInputStreamfi=null;//文件输出流
//FileOutputStreamfo=null;//文件输入流
try{
if(!this.isFile()){//文件翻开失利
System.out.println("文件翻开失利,文件名为:"+fileName);
}
fi=newFileInputStream(newFile(fileName));//创建翻开流
SAXBuildersb=newSAXBuilder();
Documentdoc=sb.build(fi);//把文件流给build
Elementroot=doc.getRootElement();//失掉根元素
Listchildsum=root.getChildren();//失掉根元素的汇合
if(childsum.size()==0)
{
System.out.println("该文件没有内容!文件名为===>"+fileName);
System.exit(1);
}
if(end==0)
{
end=childsum.size();
}
if(start<0||end>childsum.size()||start==end||start>end)
{
System.out.println("输出参数有毛病==>start="+start+"||==>end="+end);
System.exit(0);
}
for(inti=start;i<end;i++)
{
Elementch=(Element)childsum.get(i);
for(intj=0;j<twoChild.length;j++)
{
Stringp=ch.getChild(twoChild[j][0]).getText();
System.out.println(p);
}
}
if(debug)
{
System.out.println("输入完成");
}
}catch(Exceptione){
System.out.println("文件翻开失利,文件名为:"+fileName+"<==>毛病缘故原由为:"+
e.getMessage());
}
finally{
try{
fi.close();
//fo.close();
}
catch(Exceptione){
e.printStackTrace();
}
}
}
/**
*@paramString[]value为比对的值对
*@returnboolean是不是查找乐成
**/
publicbooleanisFindElement(String[]value)
{
FileInputStreamfi=null;//文件输出流
//FileOutputStreamfo=null;//文件输入流
booleancount=true;
try{
if(!this.isFile()){//文件翻开失利
System.out.println("文件翻开失利,文件名为:"+fileName);
}
fi=newFileInputStream(newFile(fileName));//创建翻开流
SAXBuildersb=newSAXBuilder();
Documentdoc=sb.build(fi);//把文件流给build
Elementroot=doc.getRootElement();//失掉根元素
Listchildsum=root.getChildren();//失掉根元素的汇合
if(childsum.size()==0)
{
System.out.println("该文件没有内容!文件名为===>"+fileName);
System.exit(1);
}
for(inti=0;i<childsum.size();i++)
{
count=true;
Elementch=(Element)childsum.get(i);
for(intj=0;j<twoChild.length;j++)
{
Stringp=ch.getChild(twoChild[j][0]).getText();
if(!p.equals(value[j]))
{
count=false;
}
}
if(count)
{
returncount;
}
}
if(debug)
{
System.out.println("查找完成");
}
}
catch(Exceptione){
System.out.println("文件翻开失利,文件名为:"+fileName+"<==>毛病缘故原由为:"+
e.getMessage());
}
finally{
try{
fi.close();
//fo.close();
}
catch(Exceptione){
e.printStackTrace();
}
}
returncount;
}
}
他们对jsp,servlet,javabean进行封装就是为了展示他们的某个思想,与java的开发并没有必然的关系,也不见得在所以情况下,别人使用起来会简单。
作者:
乐观
时间:
2015-1-21 16:41
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
作者:
变相怪杰
时间:
2015-1-30 21:14
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
作者:
再现理想
时间:
2015-2-8 07:26
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
作者:
分手快乐
时间:
2015-2-9 07:18
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
作者:
飘灵儿
时间:
2015-2-27 00:43
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
作者:
若天明
时间:
2015-3-1 04:01
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
作者:
谁可相欹
时间:
2015-3-1 11:17
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
作者:
海妖
时间:
2015-3-6 21:17
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
作者:
精灵巫婆
时间:
2015-3-6 23:49
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
作者:
小女巫
时间:
2015-3-8 11:39
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
作者:
活着的死人
时间:
2015-3-15 22:23
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
作者:
飘飘悠悠
时间:
2015-3-17 01:07
是一种为 Internet发展的计算机语言
作者:
仓酷云
时间:
2015-3-17 06:40
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
作者:
只想知道
时间:
2015-3-24 00:11
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
作者:
透明
时间:
2015-4-1 01:09
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
作者:
第二个灵魂
时间:
2015-4-1 08:32
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
作者:
蒙在股里
时间:
2015-4-3 21:05
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
作者:
柔情似水
时间:
2015-4-5 11:09
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
作者:
山那边是海
时间:
2015-4-10 11:36
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2