Subversion Repositories DevTools

Rev

Blame | Last modification | View Log | RSS feed

/*
 * Created on 24/03/2005
 */
package DMS;

import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import java.util.Vector;
import java.io.InputStream;

/**
 * @author mtayler
 */
public class XMLParser {

        public XMLParser() {
                super();
                
                
        }

        public static Document getDocument(String fileName){
                Document doc = null;
                try {   
                    DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
                        InputStream is = DMSUtils.getResourceAsStream(fileName);
                        try {
                                doc = docBuilder.parse(is);
                    } finally {
                      is.close();
                    }
                } catch (Exception e) { 
                        e.printStackTrace();                    
                }       
                
                return doc;
        }


        public static Node getRootNode(String fileName){
                Node root = null;
                try {                   
                        Document doc = getDocument(fileName);
                        root = doc.getDocumentElement();                        
                } catch (Exception e) { 
                        e.printStackTrace();    
                }       
                return root;
        }
        
        
        public static Node findNode(Node root, String nodeName) {
                if (root!=null) {
                        NodeList list = root.getChildNodes();
                        
                        if (list!=null)
                        for (int i=0;i<list.getLength();i++) {
                                Node item = list.item(i);
                                if (item!=null && item.getNodeName().toUpperCase().equals(nodeName.toUpperCase())) {
                                        return item; 
                                }
                                
                        }                               
                }
                return null; //return null if no node with the given name is found 
        }
        
        public static Vector findNodeList(Node root, String nodeName) {
                Vector vector = new Vector();                   
                if (root!=null) {               
                        NodeList list = root.getChildNodes();
                                        
                        if (list!=null)
                        for (int i=0;i<list.getLength();i++) {
                                Node item = list.item(i);
                                if (item!=null && item.getNodeName().toUpperCase().equals(nodeName.toUpperCase())) {
                                        vector.add(item);
                                }               
                        }                       
                }
                return vector;          
        }
        

        public static String findNodeValue(Node root, String nodeName) {
                Node retNode = findNode(root, nodeName);
                if (retNode!=null) {
                        Node child = retNode.getFirstChild();
                        if (child!=null) return child.getNodeValue();
                }
                return "";  
        }
                 
        public static boolean findNodeValueBool(Node root, String nodeName) {
                String value = DMSUtils.NVL(findNodeValue(root, nodeName),"false");
                return value.toLowerCase().trim().equals("true");
        }

}