文件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;      
    }    
  } 
查看本文来源