Mengecek XML Well Formed dengan Java

Well formed adalah salah satu ciri dari file XML dimana setiap tag pembuka harus di ada tag penutup.

Jika syarat ini tidak terpenuhi, maka file XML tersebut tidak akan dapat digunakan semestinya.

Untuk mengecek apakah XML tersebut well formed atau tidak, kita dapat membuat sebuah program kecil dalam bahasa Java untuk melakukan pengecekan. Ketika program tersebut dijalankan, maka akan dilakukan pengecekan terhadap file xml yang jika terdapat error (tidak well formed) maka program akan berhenti dan menampilkan letak kesalahan XML tersebut.

Berikut ini adalah  source code dari program tersebut:

Source Code

CheckXML.java

import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.xml.sax.ErrorHandler;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Azhar
 */
public class CheckXML {
    public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        dbf.setValidating(false);
        dbf.setNamespaceAware(true);

        DocumentBuilder db = dbf.newDocumentBuilder();
        db.setErrorHandler(new SimpleErrorHandler());
        Document doc = db.parse(new InputSource("worldbank.xml"));
    }

    private static class SimpleErrorHandler implements ErrorHandler {

        public SimpleErrorHandler() {
        }

        @Override
        public void warning(SAXParseException exception) throws SAXException {
            System.out.println(exception.getMessage());
        }

        @Override
        public void error(SAXParseException exception) throws SAXException {
            System.out.println(exception.getMessage());
        }

        @Override
        public void fatalError(SAXParseException exception) throws SAXException {
            System.out.println(exception.getMessage());
        }
    }
}

Semoga bermanfaat.

sumber: StackOverFlow

Leave a Comment