www.pudn.com > SnmpMaster.rar > ConfigParse.java
package snmpmaster;
import java.io.IOException;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
//import org.apache.xerces.parsers.SAXParser;
import org.w3c.dom.*;
//import org.apache.xerces.parsers.DOMParser;
import java.io.*;
import java.lang.*;
import java.util.*;
import javax.xml.parsers.*;
public class ConfigParse{
Document xmlDoc;
Hashtable OidConfig;
Hashtable DataConfig;
Hashtable PackConfig;
public ConfigParse() {
try{
PrintWriter out = new PrintWriter(new FileOutputStream("EjbTrace.xml",false));
out.println("");
out.flush();
out.close();
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
//factory.setValidating(true);
DocumentBuilder builder = factory.newDocumentBuilder();
xmlDoc = builder.parse("Config.xml"); //解析xml文件
OidConfig = GetOidConfig(xmlDoc);
DataConfig = GetDataConfig(xmlDoc);
PackConfig = GetPackConfig(xmlDoc);
}
catch(IOException ioe) {
ioe.printStackTrace();
}
catch(DOMException dome) {
dome.printStackTrace();
}
catch(SAXException saxe) {
saxe.printStackTrace();
}
catch(ParserConfigurationException e)
{
e.printStackTrace();
}
}
private Hashtable GetOidConfig(Document xmlDoc)
{
Hashtable OidConfig = new Hashtable();
Hashtable TableOid = new Hashtable();
Hashtable NodeOid = new Hashtable();
String RootOid = "";
NodeList ChildNodes = xmlDoc.getDocumentElement().getChildNodes();
Node OidNode = null;
for(int i = 0;i < ChildNodes.getLength(); i++)
{
if(ChildNodes.item(i).getNodeType() == Node.TEXT_NODE)
continue; //如果当前节点是文本节点则执行下一个循环
if(ChildNodes.item(i).getNodeName().equalsIgnoreCase("OidConfig")){
//如果找到节点
OidNode = ChildNodes.item(i);
break;
}
}////for(int i = 0;i < ChildNodes.getLength(); i++)
ChildNodes = OidNode.getChildNodes();
for(int i = 0; i < ChildNodes.getLength(); i++)
{
if(ChildNodes.item(i).getNodeType() == Node.TEXT_NODE)
continue; //如果当前节点是文本节点则执行下一个循环
Node CurrentNode = ChildNodes.item(i);
if(CurrentNode.getNodeName().equalsIgnoreCase("RootOid")){
RootOid = ChildNodes.item(i).getFirstChild().getNodeValue();
continue;
}
if(CurrentNode.getNodeName().equalsIgnoreCase("Table"))
{
NodeList TableNodes = ChildNodes.item(i).getChildNodes();
Hashtable NameOid = new Hashtable();
Hashtable StatusOid = new Hashtable();
for(int j = 0 ; j < TableNodes.getLength(); j++)
{
if(ChildNodes.item(i).getNodeType() == Node.TEXT_NODE)
continue; //如果当前节点是文本节点则执行下一个循环
Node RecodeNode = TableNodes.item(j);
if(RecodeNode.getNodeName().equalsIgnoreCase("Recode"))
{
String RecodeName = RecodeNode.getFirstChild().getNodeValue();
String ItemName = CurrentNode.getAttributes().getNamedItem("Name").getNodeValue();
ItemName = RootOid + "." + ItemName;
String ItemStatus = CurrentNode.getAttributes().getNamedItem("Status").getNodeValue();
ItemStatus = RootOid + "." + ItemStatus;
NameOid.put(RecodeName,ItemName);
StatusOid.put(RecodeName,ItemStatus);
}
}
TableOid.put("name",NameOid);
TableOid.put("status",StatusOid);
continue;
}///if(ChildNodes.item(i).getNodeName().equalsIgnoreCase("Table"))
if(CurrentNode.getNodeName().equalsIgnoreCase("Node"))
{
String Name = CurrentNode.getAttributes().getNamedItem("Name").getNodeValue();
String Oid = CurrentNode.getAttributes().getNamedItem("Oid").getNodeValue();
Oid = RootOid + "." + Oid;
NodeOid.put(Name,Oid);
continue;
}
}////for(int i = 0; i < ChildNodes.getLength(); i++)
OidConfig.put("table",TableOid);
OidConfig.put("Node",NodeOid);
return OidConfig;
}
private Hashtable GetDataConfig(Document xmlDoc)
{
Hashtable DataConfig = new Hashtable();
return DataConfig;
}
private Hashtable GetPackConfig(Document xmlDoc)
{
Hashtable PackConfig = new Hashtable();
return PackConfig;
}
public static void main(String[] argv) {
ConfigParse parse = new ConfigParse();
}
}