• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: 小 中 大 | 推荐给好友 上一篇 | 下一篇

用Applet读写XML配置文件

发布: 2007-7-04 13:34 | 作者: admin | 来源:  网友评论 | 查看: 37次 | 进入软件测试论坛讨论

领测软件测试网 此小程序用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;

}

}



延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:[email protected] 电话:010-51297073

软件测试 | 领测国际 | ISTQB | ISTQB官网 | TMMi | TMMi认证 | 国际软件测试工程师认证 | 领测软件测试网