Η υλοποίηση του μοντέλου αντικειμένων εγγράφων στη Java

  • Η επεξεργασία ενός αρχείου XML γίνεται μέσω ενός συντακτικού αναλυτή DocumentBuilder που παράγεται από την κλάση DocumentBuilderFactory
    // Create the DocumentBuilderFactory
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    // Create the document builder
    DocumentBuilder db = dbf.newDocumentBuilder();
  • Η μέθοδος parse του συντακτικού αναλυτή DocumentBuilder επιστρέφει ένα αντικείμενο που υποστηρίζει τη διεπαφή Document. Μπορεί να κληθεί με όρισμα:
  • Παράδειγμα: υπολογισμός μέσου όρου

    /*
     * Print the average value of the specified node
     * D. Spinellis, January 2004
     */

    import javax.xml.parsers.*;
    import java.io.*;
    import org.w3c.dom.*;

    class Average {
            public static void main(String args[]) {

                    if (args.length != 2) {
                            System.err.println("Usage: Average element file");
                            System.exit(1);
                    }

                    Document doc = null;
                    try {
                            // Create the DocumentBuilderFactory
                            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
                            // Create the document builder
                            DocumentBuilder db = dbf.newDocumentBuilder();
                            // Create DOM document from the file
                            doc = db.parse(new File(args[1]));
                    } catch (Exception e) {
                            System.err.println("Parsing failed: " + e);
                            System.exit(1);
                    }

                    NodeList grades = doc.getElementsByTagName(args[0]);
                    double sum = 0.0;
                    for (int i = 0; i < grades.getLength(); i++) {
                            String grade = grades.item(i).getFirstChild().getNodeValue();
                            sum += (new Integer(grade)).doubleValue();
                    }
                    System.out.println(sum / grades.getLength());
            }
    }