001    /*
002     * To change this template, choose Tools | Templates
003     * and open the template in the editor.
004     */
005    
006    package org.util.xml.tool;
007    
008    import java.io.File;
009    import java.io.FileInputStream;
010    import java.io.StringReader;
011    import javax.swing.JFileChooser;
012    import org.util.xml.element.Element;
013    import org.util.xml.parse.ElementParser;
014    
015    /**
016     *
017     * @author masaru
018     */
019    public class XMLComparator {
020        
021        public static boolean isSameAsXML(File a, File b) throws Exception {
022            ElementParser ap = new ElementParser(new FileInputStream(a));
023            ap.parse();
024            ElementParser bp = new ElementParser(new FileInputStream(b));
025            bp.parse();
026            return isSameAsXML(ap.getResult(), bp.getResult());
027        }
028    
029        public static boolean isSameAsXML(String a, String b) throws Exception {
030            ElementParser ap = new ElementParser(new StringReader(a));
031            ap.parse();
032            ElementParser bp = new ElementParser(new StringReader(b));
033            bp.parse();
034            return isSameAsXML(ap.getResult(), bp.getResult());
035        }
036        
037        public static boolean isSameAsXML(Element[] a, Element[] b) {
038            if(a.length!=b.length) return false;
039            for(int i=0;i<a.length;i++)
040                if(!isSameAsXML(a[i], b[i])) return false;
041            return true;
042        }
043        
044        public static boolean isSameAsXML(Element a, Element b) {
045            String as = a.toString();
046            String bs = b.toString();
047            return as.equals(bs);
048        }
049        
050        public static void main(String[] args) throws Exception {
051            JFileChooser fc = new JFileChooser();
052            if(fc.showOpenDialog(null) != JFileChooser.APPROVE_OPTION)
053                throw new Exception("canceled to select file!");
054            File file1 = fc.getSelectedFile();
055            
056            if(fc.showOpenDialog(null) != JFileChooser.APPROVE_OPTION)
057                throw new Exception("canceled to select file!");
058            File file2 = fc.getSelectedFile();
059            System.out.println("file1: "+file1.getAbsolutePath());
060            System.out.println("file2: "+file2.getAbsolutePath());
061            System.out.println("file1 == file2: "+isSameAsXML(file1, file2));
062        }
063    }