Menggabungkan File XML Java Menggunakan Netbeans

Menggabungkan dua file xml menjadi satu menggunakan Java Netbeans adalah topik yang akan dibahas pada tutorial kali ini.

Misalnya saja anda memiliki dua buah file XML yang masing-masing memiliki ratusan data atau lebih, daripada melakukan copy paste lalu save as file XML baru tentu saja lebih mudah jika pekerjaan itu dilakukan oleh program sederhana.

Anda hanya perlu melakukan browse terhadap file yang akan di gabungkan, tentukan nama, klik Merge dan file XML baru yang merupakan gabungan dari dua file tersebut telah selesai.

File XML yang Akan Digabung

Berikut ini adalah potongan dari file XML yang akan digabung. Kedua file tersebut memiliki persamaan, yaitu tag dari file XML adalah sama.

XML pertama

<?xml version="1.0"?>
<penerbit>

<buku>
  <judul><![CDATA[Al Umm jil. 1]]></judul>
  <penulis><![CDATA[Pengarang: Imam Syafi’iTebal: 824 hal.Pembahasan: · Biografi Imam Syafi..]]></penulis>
  <keterangan><![CDATA[Rp109.650]]></keterangan>
  <sumber><![CDATA[sahabatmuslim]]></sumber>
</buku>

</penerbit>

XML kedua

<?xml version="1.0"?>
<penerbit>

<buku>
  <judul><![CDATA[[AZ-347] Al Mughni jilid 1]]></judul>
  <penulis><![CDATA[Ibnu Qudamah]]></penulis>
  <keterangan><![CDATA[Rp104.550,00]]></keterangan>
  <sumber><![CDATA[buku-islam]]></sumber>
</buku>

</penerbit>

Selanjutnya kita akan menggabungkan kedua file XML tersebut.

Menggabungkan File XML Java

Baik sekarang kita akan mencoba untuk membuat program sederhana untuk menggabungkan file XML.

Seperti biasa buatlah sebuah project baru menggunakan Netbeans dengan nama JoinXML. JoinXML.java adalah main class dari project ini, selain itu buat juga Form dengan nama JoinForm.java

Ada dua file utama dari project menggabungkan file xml java ini.

menggabungkan file xml java
JoinXML Project

Berikut ini adalah tampilan dari file JoinForm.java

menggabungkan file xml java
JoinForm.java

Untuk nama variabel anda dapat melihat component di navigator berikut. Disesuaikan saja, text field paling atas (dari JoinForm.java) berarti txtPath1, button Browse paling atas berarti btnBrowse1. dan seterusnya.

nama variabel menggabungkan file xml netbeans
Component Navigator

Memulai Coding

Setelah desain oke, selanjutnya kita akan memberikan sedikit source code terhadap component di atas.

Klik dua kali pada button Browse pertama (btnBrowse1) dan sesuaikan dengan source berikut:

private void btnBrowse1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
        JFileChooser jfc = new JFileChooser();
        jfc.showOpenDialog(null);

        File file = jfc.getSelectedFile();
        dir = file.getAbsolutePath();

        txtPath1.setText(dir);
}

Oh iya, sebelumnya jangan lupa deklarasikan variabel dir di bawah class utama.

public class JoinForm extends javax.swing.JFrame {
    private String dir;
    private String dir2;
    private String fileName;

Klik dua kali juga pada button Browse yang kedua (btnBrowse2) dan sesuaikan dengan source berikut ini.

private void btnBrowse2ActionPerformed(java.awt.event.ActionEvent evt) {                                           
        JFileChooser jfc2 = new JFileChooser();
        jfc2.showOpenDialog(null);

        File file = jfc2.getSelectedFile();
        dir2 = file.getAbsolutePath();

        txtPath2.setText(dir2);
}

Langkah terakhir, berikan event juga untuk button Merge dengan cara klik dua kali dan sesuaikan dengan source code berikut ini.

private void btnMergeActionPerformed(java.awt.event.ActionEvent evt) {
        fileName = txtMergedFile.getText();
        Writer output;
        try {
            output = new BufferedWriter(new FileWriter(fileName));
            String newline = System.getProperty("line.separator");

            output.write("<?xml version=\"1.0\"?>");
            output.write("<penerbit>");

            // Read in xml file 1
            FileInputStream in = new FileInputStream(dir);
            BufferedReader br = new BufferedReader(new InputStreamReader(in));
            String strLine;

            while ((strLine = br.readLine()) != null) {

                if (strLine.contains("<?xml version=\"1.0\"?>")){
                    strLine = strLine.replace("<?xml version=\"1.0\"?>", "");
                }
                if (strLine.contains("<penerbit>")){
                    strLine = strLine.replace("<penerbit>", "");
                }
                if (strLine.contains("</penerbit>")){
                    strLine = strLine.replace("</penerbit>", "");
                }

                output.write(newline);
                output.write(strLine);

                //System.out.println(strLine);
            }

            // Read in xml file 2
            FileInputStream in2 = new FileInputStream(dir2);
            BufferedReader br2 = new BufferedReader(new InputStreamReader(in2));
            String strLine2;

            while ((strLine2 = br2.readLine()) != null) {

                if (strLine2.contains("<?xml version=\"1.0\"?>")){
                    strLine2 = strLine2.replace("<?xml version=\"1.0\"?>", "");
                }
                if (strLine2.contains("<penerbit>")){
                    strLine2 = strLine2.replace("<penerbit>", "");
                }
                if (strLine2.contains("</penerbit>")){
                    strLine2 = strLine2.replace("</penerbit>", "");
                }

                output.write(strLine2);
                output.write(newline);
                //System.out.println(strLine2);
            }

            output.write("</penerbit>");
            output.close();

            JOptionPane.showMessageDialog(null, "Merge Complete!");
        } catch (IOException ex) {
            Logger.getLogger(JoinForm.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

Untuk file JoinXML.java isikan saja mirip dengan tutorial di Memperbaiki Tampilan Program Java di Netbeans, yaitu sesuaikan dengan source berikut.

public static void main(String[] args) {
        try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException e) {
        } finally{
            new JoinForm().setVisible(true);
        }
    }

Sekarang program anda telah selesai, cobalah untuk me-run program anda, dan pilih file XML yang serupa untuk digabungkan. Berikut ini adalah tampilan program ketika di run

Menggabungkan File XML dengan menggunakan java dan Netbeans
Merge XML Program

Tampilan ketika berhasil menggabungkan kedua file XML tersebut.

menggabungkan dua file xml menjadi satu dengan menggunakan java netbeans
Merge XML Sukses

Anda dapat mengecek file xml baru hasil dari join kedua file XML.

<?xml version="1.0"?>
<penerbit>

<buku>
  <judul><![CDATA[Al Umm jil. 1]]></judul>
  <penulis><![CDATA[Pengarang: Imam Syafi’iTebal: 824 hal.Pembahasan: · Biografi Imam Syafi..]]></penulis>
  <keterangan><![CDATA[Rp109.650]]></keterangan>
  <sumber><![CDATA[sahabatmuslim]]></sumber>
</buku>

<buku>
  <judul><![CDATA[[AZ-347] Al Mughni jilid 1]]></judul>
  <penulis><![CDATA[Ibnu Qudamah]]></penulis>
  <keterangan><![CDATA[Rp104.550,00]]></keterangan>
  <sumber><![CDATA[buku-islam]]></sumber>
</buku>

</penerbit>

Selamat mencoba.

Leave a Comment