package mr.system.data;
import java.io.*;
import org.xml.sax.*;
import org.xml.sax.helpers.DefaultHandler;
import javax.xml.parsers.SAXParserFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import mr.system.MRLog;
public class MRXMLReader {
static SAXParserFactory factory;
static SAXParser saxParser;
public MRXMLReader(){
try {
factory = SAXParserFactory.newInstance();
saxParser = factory.newSAXParser();
} catch (SAXException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
public static MRData ReadXMLFile(MRHandler handler,String filename) {
try {
if (factory == null){
factory = SAXParserFactory.newInstance();
}
if (saxParser == null){
saxParser = factory.newSAXParser();
}
saxParser.parse( new File(filename), handler );
if (handler != null){
MRData d = handler.getData();
return (d);
}else{
return null;
}
} catch (SAXException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return (null);
}
}
package mr.system.data;
import java.io.*;
import org.xml.sax.*;
import org.xml.sax.helpers.DefaultHandler;
import javax.xml.parsers.SAXParserFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import mr.system.MRLog;
class MRSystemDataHandler extends MRHandler {
private MRSystemData d = null;
private String CurrentElement;
public MRSystemDataHandler(){
d = MRSystemData.GetInstance();
CurrentElement = "";
}
public MRData getData(){
return ((MRData)d);
}
public void startElement(String uri, String localName, String qName, Attributes alist) {
String wk = "";
String vname = "";
String vvalue = "";
System.out.println(localName + "[" + qName + "]");
if (qName.equals("mr:set") || qName.equals("mr:subset")){
for (int i = 0; i < alist.getLength(); i++) {
wk = alist.getQName(i);
if ("name".equals(wk)){
vname = alist.getValue(i);
}else if ("value".equals(wk)){
vvalue = alist.getValue(i);
}
System.out.println(alist.getQName(i) + " = " + alist.getValue(i));
}
d.SetValue(vname, vvalue);
}
}
}
}
package mr.system.data;
import java.io.*;
import org.xml.sax.*;
import org.xml.sax.helpers.DefaultHandler;
import javax.xml.parsers.SAXParserFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import mr.system.MRLog;
public class MRDataReader {
static MRDataHandler h;
static MRData c;
static public MRSystemData GetSystemData(){
h = new MRSystemDataHandler();
c = MRXMLReader.ReadXMLFile(h, "mrsystem.xml");
return ((MRSystemData)c);
}
static public MRHogeData GetHogeData(){
h = new MRHogeDataHandler();
c = MRXMLReader.ReadXMLFile(h, "mrhoge.xml");
return ((MRHogeData)c);
}
}
![]()
