仓酷云

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

[学习教程] JAVA编程:XML 有用工具类

[复制链接]
因胸联盟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:37:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
通过视频学习比传统的大课堂学习更适合成人化的学习规律。有人说大课堂气氛好,学习氛围浓,热闹,可以认识很多人。xmlpackagecom.elink.util;

/*
*<p>Company:凌科软件www.elingke.com</p>
*@authorliubaojun
*@version1.0
*Createdon2004-11-29
*来历于elinkBSP部分源代码
*/

importjava.io.*;
importjava.util.*;
importjavax.xml.parsers.*;
importjavax.xml.transform.*;
importjavax.xml.transform.dom.*;
importjavax.xml.transform.stream.*;

importorg.w3c.dom.*;
importorg.xml.sax.*;

publicclassXmlUtil
{
publicstaticsynchronizedDocumentnewDocument()
{
Documentdoc=null;
try
{
DocumentBuilderdb=DocumentBuilderFactory.newInstance().
newDocumentBuilder();
doc=db.newDocument();
}
catch(Exceptione)
{
LogUtil.logException(e);
}
returndoc;
}

publicstaticsynchronizedElementcreateRootElement()
{
ElementrootElement=null;
try
{
DocumentBuilderdb=DocumentBuilderFactory.newInstance().
newDocumentBuilder();
Documentdoc=db.newDocument();
rootElement=doc.getDocumentElement();
}
catch(Exceptione)
{
e.printStackTrace();
}
returnrootElement;
}

publicstaticsynchronizedElementgetRootElement(StringfileName)
{
if(fileName==null||fileName.length()==0)
{
returnnull;
}
try
{
ElementrootElement=null;
FileInputStreamfis=newFileInputStream(fileName);
rootElement=getRootElement(fis);
fis.close();
returnrootElement;
}
catch(Exceptione)
{
returnnull;
}
}

publicstaticsynchronizedElementgetRootElement(InputStreamis)
{
if(is==null)
{
returnnull;
}
ElementrootElement=null;
try
{
DocumentBuilderdb=DocumentBuilderFactory.newInstance().
newDocumentBuilder();
Documentdoc=db.parse(is);
rootElement=doc.getDocumentElement();
}
catch(Exceptione)
{
e.printStackTrace();
}
returnrootElement;
}

publicstaticsynchronizedElementgetRootElement(InputSourceis)
{
if(is==null)
{
returnnull;
}
ElementrootElement=null;
try
{
DocumentBuilderdb=DocumentBuilderFactory.newInstance().
newDocumentBuilder();
Documentdoc=db.parse(is);
rootElement=doc.getDocumentElement();
}
catch(Exceptione)
{
e.printStackTrace();
}
returnrootElement;
}

publicstaticsynchronizedElement[]getChildElements(Elementelement)
{
if(element==null)
{
returnnull;
}
Vectorchilds=newVector();
for(Nodenode=element.getFirstChild();node!=null;
node=node.getNextSibling())
{
if(nodeinstanceofElement)
{
childs.add((Element)node);
}
}
Element[]elmt=newElement[childs.size()];
childs.toArray(elmt);
returnelmt;
}

publicstaticsynchronizedElement[]getChildElements(Elementelement,
StringchildName)
{
if(element==null||childName==null||childName.length()==0)
{
returnnull;
}
Vectorchilds=newVector();
for(Nodenode=element.getFirstChild();node!=null;
node=node.getNextSibling())
{
if(nodeinstanceofElement)
{
if(node.getNodeName().equals(childName))
{
childs.add((Element)node);
}
}
}
Element[]elmt=newElement[childs.size()];
childs.toArray(elmt);
returnelmt;
}

publicstaticsynchronizedNode[]getChildNodes(Nodenode)
{
if(node==null)
{
returnnull;
}
Vectorchilds=newVector();
for(Noden=node.getFirstChild();n!=null;
n=n.getNextSibling())
{
childs.add((Element)n);
}
Node[]childNodes=newElement[childs.size()];
childs.toArray(childNodes);
returnchildNodes;
}

publicstaticsynchronizedElementgetChildElement(Elementelement,
StringchildName)
{
if(element==null||childName==null||childName.length()==0)
{
returnnull;
}
Elementchilds=null;
for(Nodenode=element.getFirstChild();node!=null;
node=node.getNextSibling())
{
if(nodeinstanceofElement)
{
if(node.getNodeName().equals(childName))
{
childs=(Element)node;
break;
}
}
}
returnchilds;
}

publicstaticsynchronizedElementgetChildElement(Elementelement)
{
if(element==null)
{
returnnull;
}
Elementchilds=null;
for(Nodenode=element.getFirstChild();node!=null;
node=node.getNextSibling())
{
if(nodeinstanceofElement)
{
childs=(Element)node;
break;
}
}
returnchilds;
}

publicstaticsynchronizedString[]getElenentValues(Elementelement)
{
if(element==null)
{
returnnull;
}
Vectorchilds=newVector();
for(Nodenode=element.getFirstChild();node!=null;
node=node.getNextSibling())
{
if(nodeinstanceofText)
{
childs.add(node.getNodeValue());
}
}
String[]values=newString[childs.size()];
childs.toArray(values);
returnvalues;
}

publicstaticsynchronizedStringgetElenentValue(Elementelement)
{
if(element==null)
{
returnnull;
}
StringretnStr=null;
for(Nodenode=element.getFirstChild();node!=null;
node=node.getNextSibling())
{
if(nodeinstanceofText)
{
Stringstr=node.getNodeValue();
if(str==null||str.length()==0
||str.trim().length()==0)
{
continue;
}
else
{
retnStr=str;
break;
}
}
}
returnretnStr;
}

publicstaticsynchronizedElementfindElementByName(Elemente,Stringname)
{
if(e==null||name==null||name.length()==0)
{
returnnull;
}
Stringnodename=null;
Element[]childs=getChildElements(e);
for(inti=0;i<childs.length;i++)
{
nodename=childs[i].getNodeName();
if(name.equals(nodename))
{
returnchilds[i];
}
}
for(inti=0;i<childs.length;i++)
{
Elementretn=findElementByName(childs[i],name);
if(retn!=null)
{
returnretn;
}
}
returnnull;
}
publicstaticsynchronizedElementfindElementByAttr(Elemente,StringattrName,
StringattrVal)
{
returnfindElementByAttr(e,attrName,attrVal,true);
}

publicstaticsynchronizedElementfindElementByAttr(Elemente,StringattrName,
StringattrVal,booleandept)
{
if(e==null||attrName==null||attrName.length()==0
||attrVal==null||attrVal.length()==0)
{
returnnull;
}
StringtmpValue=null;
Element[]childs=getChildElements(e);
for(inti=0;i<childs.length;i++)
{
tmpValue=childs[i].getAttribute(attrName);
if(attrVal.equals(tmpValue))
{
returnchilds[i];
}
}
if(dept)
{
for(inti=0;i<childs.length;i++)
{
Elementretn=findElementByAttr(childs[i],attrName,attrVal);
if(retn!=null)
{
returnretn;
}
}
}
returnnull;
}

publicstaticsynchronizedStringformatXml(Elemente)
{
returnformatXml(e,0);
}

/**
*格局化XML输入串.
*/
publicstaticsynchronizedStringformatXml(Elemente,intindent)
{
indent++;
for(Noden=e.getFirstChild();n!=null;n=n.getNextSibling())
{
appendIndent(e,n,indent);
if(!n.getNodeName().equals("#text"))
{
formatXml((Element)n,indent);
}
}
indent--;
appendIndent(e,indent);
returne.toString();
}

/**
*在指定的节点前拔出格局暗示.
*/
privatestaticsynchronizedvoidappendIndent(Elemente,Nodepos,intindent)
{
Documentdoc=e.getOwnerDocument();
if(indent==0)
{
e.insertBefore(doc.createTextNode("
"),pos);
}
for(inti=0;i<indent;i++)
{
if(i==0)
{
e.insertBefore(doc.createTextNode("
        "),pos);
}
else
{
e.insertBefore(doc.createTextNode("        "),pos);
}
}
}

/**
*追加格局暗示.
*/
privatestaticsynchronizedvoidappendIndent(Elemente,intindent)
{
Documentdoc=e.getOwnerDocument();
if(indent==0)
{
e.appendChild(doc.createTextNode("
"));
}
for(inti=0;i<indent;i++)
{
if(i==0)
{
e.appendChild(doc.createTextNode("
        "));
}
else
{
e.appendChild(doc.createTextNode("        "));
}
}
}

publicstaticsynchronizedvoidsetAttribute(Elemente,Stringname,Stringvalue)
{
if(e==null||name==null||name.length()==0||value==null
||value.length()==0)
return;
else
e.setAttribute(name,value);
}

publicstaticsynchronizedStringgetAttribute(Elemente,Stringname)
{
returngetAttribute(e,name,null);
}
publicstaticsynchronizedStringgetAttribute(Elemente,Stringname,Stringdefval)
{
if(e==null||name==null||name.length()==0)
returndefval;
else
returne.getAttribute(name);
}

publicvoidtransformerWrite(Elementdoc,Stringfilename)throwsException
{
DOMSourcedoms=newDOMSource(doc);
Filef=newFile(filename);
StreamResultsr=newStreamResult(f);
transformerWrite(doms,sr);
}

publicvoidtransformerWrite(Elementdoc,Filefile)throwsException
{
DOMSourcedoms=newDOMSource(doc);
StreamResultsr=newStreamResult(file);
transformerWrite(doms,sr);
}

publicvoidtransformerWrite(Elementdoc,OutputStreamoutstream)throwsException
{
DOMSourcedoms=newDOMSource(doc);
StreamResultsr=newStreamResult(outstream);
transformerWrite(doms,sr);
}

publicvoidtransformerWrite(Elementdoc,Writeroutwriter)throwsException
{
DOMSourcedoms=newDOMSource(doc);
StreamResultsr=newStreamResult(outwriter);
transformerWrite(doms,sr);
}

publicvoidtransformerWrite(DOMSourcedoms,StreamResultsr)throwsException
{
TransformerFactorytf=TransformerFactory.newInstance();
Transformert=tf.newTransformer();
t.setOutputProperty(OutputKeys.ENCODING,"GBK");
t.transform(doms,sr);
}
}



最初被命名为Oak,目标设定在家用电器等小型系统的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。
海妖 该用户已被删除
沙发
发表于 2015-1-21 11:10:09 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
冷月葬花魂 该用户已被删除
板凳
发表于 2015-2-1 12:07:55 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
变相怪杰 该用户已被删除
地板
发表于 2015-2-15 07:23:46 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
若天明 该用户已被删除
5#
发表于 2015-3-4 11:23:09 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
分手快乐 该用户已被删除
6#
发表于 2015-3-4 11:23:12 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
小魔女 该用户已被删除
7#
发表于 2015-3-11 18:47:36 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
爱飞 该用户已被删除
8#
发表于 2015-3-11 19:59:21 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
柔情似水 该用户已被删除
9#
发表于 2015-3-15 11:19:56 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
10#
发表于 2015-3-17 19:37:19 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
兰色精灵 该用户已被删除
11#
发表于 2015-3-24 21:41:36 | 只看该作者
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
老尸 该用户已被删除
12#
发表于 2015-4-3 03:13:59 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
深爱那片海 该用户已被删除
13#
发表于 2015-4-3 03:46:14 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
愤怒的大鸟 该用户已被删除
14#
发表于 2015-4-6 18:10:10 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
金色的骷髅 该用户已被删除
15#
发表于 2015-4-8 00:11:42 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
透明 该用户已被删除
16#
发表于 2015-4-16 04:05:13 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
飘灵儿 该用户已被删除
17#
发表于 2015-4-18 10:44:44 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
只想知道 该用户已被删除
18#
发表于 2015-4-25 04:27:22 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
因胸联盟 该用户已被删除
19#
 楼主| 发表于 2015-4-27 13:48:37 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-15 02:01

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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