Sal
Administrator
Seorang penulis yang suka belajar hal baru dan dunia fotografi
4 min read

Menggabungkan File XML Java Menggunakan Netbeans

Posted in XML

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. [caption id="" align="alignnone" width="236"]menggabungkan file xml java JoinXML Project[/caption] Berikut ini adalah tampilan dari file JoinForm.java [caption id="" align="alignnone" width="411"]menggabungkan file xml java JoinForm.java[/caption] 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. [caption id="" align="alignnone" width="235"]nama variabel menggabungkan file xml netbeans Component Navigator[/caption]

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 [caption id="" align="alignnone" width="416"]Menggabungkan File XML dengan menggunakan java dan Netbeans Merge XML Program[/caption] Tampilan ketika berhasil menggabungkan kedua file XML tersebut. [caption id="" align="alignnone" width="412"]menggabungkan dua file xml menjadi satu dengan menggunakan java netbeans Merge XML Sukses[/caption] 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.