用Applet读写XML配置文件
- 此小程序用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;
- }
- }
复制代码
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论