欢迎光临
我们一直在努力

用Applet读写XML配置文件-JSP教程,Java与XML

建站超值云服务器,限时71元/月

此小程序用dom来读取xml文件,用dom4j来写xml文件。

dom4j下载地址:http://sourceforge.net/projects/dom4j

1、applet主程序mainframe.java

package frame;

/**

* @author wls

*/

import java.applet.*;

import java.awt.*;

import java.awt.event.*;

public class mainframe

extends applet {

domxml domxml = new domxml();

button btnexit = new button("exit");

button btnrun = new button("save");

label lblmain = new label("dynamicroute.xml配置文件");

label lblsiteinfo = new label("srcserverid:");

label lblpath = new label("destserverid:");

label lblfilename = new label("switchserver:");

label lblsession = new label("metric:");

label lblsuccess = new label(" ");

textfield txtsiteinfo = new textfield(domxml.getsrcserverid(), 10);

textfield txtpath = new textfield(domxml.getdestserverid(), 10);

textfield txtfilename = new textfield(domxml.getswitchserver(), 10);

textfield txtsession = new textfield(domxml.getmetric(), 10);

panel p6 = new panel();

panel p1 = new panel();

panel p2 = new panel();

panel p3 = new panel();

panel p4 = new panel();

panel p5 = new panel();

panel p7 = new panel();

panel p8 = new panel();

public void init() {

resize(400, 300);

p6.add(lblmain);

p1.add(lblsiteinfo);

p1.add(txtsiteinfo);

p2.add(lblpath);

p2.add(txtpath);

p3.add(lblsession);

p3.add(txtsession);

p4.add(btnrun);

p4.add(btnexit);

p5.add(lblfilename);

p5.add(txtfilename);

p8.add(lblsuccess);

setlayout(new gridlayout(4, 2, 1, 1));

add(p6);

add(p7);

add(p1);

add(p2);

add(p5);

add(p3);

add(p4);

add(p8);

}

public boolean action(event evt, object obj) {

if (evt.target instanceof button) {

string btnname = (string) obj;

if (btnname.equals("save")) {

try {

domxml.setsrcserverid(txtsiteinfo.gettext());

domxml.setdestserverid(txtpath.gettext());

domxml.setswitchserver(txtfilename.gettext());

domxml.setmetric(txtsession.gettext());

buildxml buildxml = new buildxml();

if (buildxml.createxmlfile("dynamicroute.xml", domxml) == 1 &&

buildxml.formatxmlfile("dynamicroute.xml")==1) {

lblsuccess.settext("save success!");

system.out.println("save success!");

}

}

catch (exception e) {

e.printstacktrace();

}

}

else if (btnname.equals("exit")) {

system.exit(0);

}

}

return super.action(evt, obj);

}

public static void main(string args[]) {

new framedownload(new mainframe());

}

}

class framedownload

extends frame {

public framedownload(applet applet) {

setsize(400, 300);

add("center", applet);

applet.init();

setvisible(true);

this.addwindowlistener(new closewindows());

}

}

class closewindows

extends windowadapter {

public void windowclosing(windowevent e) {

frame frm = (frame) (e.getsource());

frm.dispose();

system.exit(0);

}

}

2、读取xml类domxml.java

package frame;

import javax.xml.parsers.*;

import org.w3c.dom.*;

/*

* created on 2004-8-19

* @author wls

*java读取xml文档

*利用dom来读取一个xml文档的内容

*

*/

public class domxml {

private string srcserverid;

private string destserverid;

private string switchserver;

private string metric;

public domxml() {

try {

initxml("dynamicroute.xml");

}

catch (exception ex) {

metric="0";

}

}

public string getsrcserverid() {

return srcserverid;

}

public void setsrcserverid(string srcserverid) {

this.srcserverid = srcserverid;

}

public string getdestserverid() {

return destserverid;

}

public void setdestserverid(string destserverid) {

this.destserverid = destserverid;

}

public string getswitchserver() {

return switchserver;

}

public void setswitchserver(string switchserver) {

this.switchserver = switchserver;

}

public string getmetric() {

return metric;

}

public void setmetric(string metric) {

this.metric = metric;

}

public void initxml(string filename) throws exception {

documentbuilderfactory factory = documentbuilderfactory.newinstance();

documentbuilder bulider = factory.newdocumentbuilder();

document doc = bulider.parse(filename);

nodelist nl = doc.getelementsbytagname("dynamicroute");

for (int i = 0; i < nl.getlength(); i++) {

element node = (element) nl.item(i);

srcserverid = node.getelementsbytagname("srcserverid").item(0).

getfirstchild().getnodevalue().trim();

destserverid = node.getelementsbytagname("destserverid").item(0).

getfirstchild().getnodevalue().trim();

switchserver = node.getelementsbytagname("serverid").item(0).

getfirstchild().getnodevalue().trim();

metric = node.getelementsbytagname("metric").item(0).getfirstchild().

getnodevalue().trim();

}

}

}

3、写xml文件类buildxml.java

package frame;

import java.io.*;

import org.dom4j.*;

import org.dom4j.io.*;

/**

* @author wls

*/

public class buildxml {

public buildxml() {

}

/**

* 建立一个xml文档,文档名由输入参数决定

* @param filename 需建立的文件名

* @return 返回操作结果, 0表失败, 1表成功

*/

public int createxmlfile(string filename, domxml domxml) {

/** 返回操作结果, 0表失败, 1表成功 */

int returnvalue = 0;

/** 建立document对象 */

document document = documenthelper.createdocument();

/** 建立xml文档的根route */

element routeelement = document.addelement("route");

/** 加入第一个dynamicroute节点 */

element dynamicrouteelement = routeelement.addelement("dynamicroute");

/** 加入show参数内容 */

//bookelement.addattribute("show","yes");

/** 加入节点 */

element srcserveridelement = dynamicrouteelement.addelement("srcserverid");

element destserveridelement = dynamicrouteelement.addelement("destserverid");

element switchserverelement = dynamicrouteelement.addelement("switchserver");

element serveridelement = switchserverelement.addelement("serverid");

element metricelement = dynamicrouteelement.addelement("metric");

/** 为title设置内容 */

srcserveridelement.settext(domxml.getsrcserverid());

destserveridelement.settext(domxml.getdestserverid());

serveridelement.settext(domxml.getswitchserver());

metricelement.settext(domxml.getmetric());

try {

/** 将document中的内容写入文件中 */

xmlwriter writer = new xmlwriter(new filewriter(new file(filename)));

writer.write(document);

writer.close();

/** 执行成功,需返回1 */

returnvalue = 1;

}

catch (exception ex) {

ex.printstacktrace();

}

return returnvalue;

}

/**

* 格式化xml文档,并解决中文问题

* @param filename

* @return

*/

public int formatxmlfile(string filename) {

int returnvalue = 0;

try {

saxreader saxreader = new saxreader();

document document = saxreader.read(new file(filename));

xmlwriter output = null;

/** 格式化输出,类型ie浏览一样 */

outputformat format = outputformat.createprettyprint();

/** 指定xml字符集编码 */

format.setencoding("utf-8");

output = new xmlwriter(new filewriter(new file(filename)), format);

output.write(document);

output.close();

/** 执行成功,需返回1 */

returnvalue = 1;

}

catch (exception ex) {

ex.printstacktrace();

}

return returnvalue;

}

}

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 用Applet读写XML配置文件-JSP教程,Java与XML
分享到: 更多 (0)