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(); } }