Az XML gyökér elem megszerzése

A fejezet elolvasása után képesek leszünk visszanyerni az XML dokumentum gyökér elemét. A JAXP (Java API for XML Processing) egységes interfészt biztosít a szabványos SAX (Simple API for XML), DOM és XSLT-ket (Extensible Stylesheet Language Transformations) tartalmazó XML fájlok készítéséhez és használatukhoz. A bemutatott példán keresztül látni fogjuk a DOM interfész használatát.

A program leírása:

Készíts egy XML fájlt. A Java és az XML fájl ugyanabban a könyvtárban legyen. A program jelenítse meg az XML fájlt a képernyőn. Ha a fájl létezik akkor végezze el a szűrést (parse) a parse() metódus használatával. Az XML dokumentum feldolgozása előtt szükséged lesz egy DocumentBuilder objektumra. Ennek a létrehozásához először egy DocumentBuilderFactory-t kell készítened. Az XML dokumentum feldolgozása után a csomópont elemet (node element) a getDocumentElement() metódussal kapod meg. A gyökér megkereséséhez a getNodeName() metódust használd.

A minta XML fájl, Employee-Detail.xml:

<?xml version = "1.0" ?>
<Employee-Detail>

    <Employee>
        <Emp_Id>E-001</Emp_Id>
        <Emp_Name>Vinod</Emp_Name>
        <Emp_E-mail>Vinod1@yahoo.com</Emp_E-mail>
    </Employee>

    <Employee>
        <Emp_Id>E-002</Emp_Id>
        <Emp_Name>Amit</Emp_Name>
        <Emp_E-mail>Amit2@yahoo.com</Emp_E-mail>
    </Employee>

    <Employee>
        <Emp_Id>E-003</Emp_Id>
        <Emp_Name>Deepak</Emp_Name>
        <Emp_E-mail>Deepak3@yahoo.com</Emp_E-mail>
    </Employee>

</Employee-Detail>

A program, GetRootNode.java:

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

public class GetRootNode{

    public static void main(String[] args) {

        try{

            BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
            System.out.print("Enter xml file name: ");
            String str = bf.readLine();
            File file = new File(str);

            if (file.exists()) {

                DocumentBuilderFactory fact = DocumentBuilderFactory.newInstance();
                DocumentBuilder builder = fact.newDocumentBuilder();
                Document doc = builder.parse(str);
                Node node = doc.getDocumentElement();
                String root = node.getNodeName();
                System.out.println("Root Node: " + root);
            }

            else {

                System.out.println("File not found!");
            }
        }

        catch(Exception e) {}
    }
}

A következő fejezetben az XML elemek megszámolását fogjuk megpróbálni.