Reading and writing XML configuration files with applets
Last Update:2017-02-28
Source: Internet
Author: User
XML this applet uses DOM to read XML files, and dom4j to write XML files.
dom4j Download Address: http://sourceforge.net/projects/dom4j
1. Applet Main program 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 configuration File");
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. Read XML class Domxml.java
Package frame;
Import javax.xml.parsers.*;
Import org.w3c.dom.*;
/*
* Created on 2004-8-19
* @author WLS
*java Read XML document
* Use DOM to read the contents of an XML document
*
*/
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, write XML file Class Buildxml.java
Package frame;
Import java.io.*;
Import org.dom4j.*;
Import org.dom4j.io.*;
/**
* @author WLS
*/
public class buildXML {
Public buildXML () {
}
/**
* Create an XML document with the document name determined by input parameters
* @param filename you need to create
* @return return operation result, 0 table failure, 1 table success
*/
public int Createxmlfile (String filename, domxml domxml) {
/** return operation result, 0 table failure, 1 table Success * *
int returnvalue = 0;
/** set up Document Object * *
Document document = Documenthelper.createdocument ();
/** establish the root route of the XML document * *
Element routeelement = document.addelement ("route");
/** joins the first dynamicroute node * *
Element dynamicrouteelement = routeelement.addelement ("Dynamicroute");
/** Add Show parameter content * *
Bookelement.addattribute ("show", "yes");
/** Join the node * *
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");
/** set content for Title * *
Srcserveridelement.settext (Domxml.getsrcserverid ());
Destserveridelement.settext (Domxml.getdestserverid ());
Serveridelement.settext (Domxml.getswitchserver ());
Metricelement.settext (Domxml.getmetric ());
try {
/** writes the contents of document to the file.
XMLWriter writer = new XMLWriter (new FileWriter (filename));
Writer.write (document);
Writer.close ();
/** execution successful, need to return 1 * * *
returnvalue = 1;
}
catch (Exception ex) {
Ex.printstacktrace ();
}
Return returnvalue;
}
/**
* Format XML documents and solve Chinese problems
* @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;
/** formatted output, type IE browsing the same * *
OutputFormat format = Outputformat.createprettyprint ();
/** specifies the XML character set encoding/*
Format.setencoding ("UTF-8");
Output = new XMLWriter (new FileWriter (filename), format);
Output.write (document);
Output.close ();
/** execution successful, need to return 1 * * *
returnvalue = 1;
}
catch (Exception ex) {
Ex.printstacktrace ();
}
Return returnvalue;
}
}