文件DbXmlParser.java封装了对xml文件的操作。 
  
import javax.xml.parsers.*; 
import org.w3c.dom.*; 
import org.xml.sax.*; 
import java.io.*; 
  
public class DbXmlParser  
{ 
     
    static  String  xmlfile; 
    public DbXmlParser(String filename) 
    { 
        xmlfile=filename; 
    } 
     
    public static Element loadDocument() 
    { 
        try 
        { 
            //工厂 
            DocumentBuilderFactory dcfactory=DocumentBuilderFactory.newInstance(); 
            //文档构造器 
            DocumentBuilder db=dcfactory.newDocumentBuilder(); 
            //构造的文档 
            Document doc=db.parse(xmlfile); 
            //根元素 
            Element root=doc.getDocumentElement(); 
            return root; 
            }catch( ParserConfigurationException e){ 
            System.out.println("ParserConfigurationException"); 
            e.printStackTrace(); 
        }catch(IOException e)      { 
            System.out.println("IOException "); 
            e.printStackTrace(); 
        }catch(SAXException e)     { 
            System.out.println("SAXException "); 
            e.printStackTrace(); 
        }catch(Exception e) { 
            e.printStackTrace(); 
        } 
        return null; 
    } 
     
    public ConnPara getSource() 
    { 
        Element root=loadDocument(); 
        if( root==null) {  return null;   }  
        NodeList nodes=root.getElementsByTagName("source"); 
        if(nodes.getLength()>0) 
        {        
            Node node=nodes.item(0); 
            String connclass=getChildElementValue(node,"class"); 
            String url=getChildElementValue(node,"url"); 
            String username=getChildElementValue(node,"user"); 
            String password=getChildElementValue(node,"password"); 
            return new ConnPara(connclass,url,username,password); 
        } 
        return null;        
    }    
     
    public  ConnPara getDest() 
    { 
        Element root=loadDocument(); 
        if( root==null) return null; 
        NodeList nodes=root.getElementsByTagName("dest"); 
        if(nodes.getLength()>0) 
        {        
            Node node=nodes.item(0); 
            String connclass=getChildElementValue(node,"class"); 
            String url=getChildElementValue(node,"url"); 
            String username=getChildElementValue(node,"user"); 
            String password=getChildElementValue(node,"password"); 
            return new ConnPara(connclass,url,username,password); 
        } 
        return null;        
    } 
         
    //得到子元素的值 
    private  String getChildElementValue(Node node,String subTagName) 
    { 
            String returnString = ""; 
            if(node != null) 
            { 
                NodeList children = node.getChildNodes(); 
                for(int innerLoop = 0; innerLoop < children.getLength(); innerLoop++) 
                { 
                    Node child = children.item(innerLoop); 
                    if(child == null || child.getNodeName() == null || !child.getNodeName().equals(subTagName)) 
                        continue; 
                    Node grandChild = child.getFirstChild();   
                    if(grandChild.getNodeValue() != null) 
                        return grandChild.getNodeValue(); 
                } 
            } 
            return returnString;        
    }    
} 
   
 
  |