Этот образец кода считывает файл XML с помощью DOM парсер. DOM парсер загружает XML-файла в память и делает объектную модель его. Это модальное объект может быть пройден получить ее элементов.

Этот код будет проанализировать следующие MyXMLFile.xml файл и распечатать его элементов на консоль.

XML-файла: MyXMLFile.xml

<?xml version="1.0"?>
<company>
<employee>
<firstname>Tom</firstname>
<lastname>Cruise</lastname>
</employee>
<employee>
<firstname>Paul</firstname>
<lastname>Enderson</lastname>
</employee>
<employee>
<firstname>George</firstname>
<lastname>Bush</lastname>
</employee>
</company>

import java.io.File;

import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;

import org.w3c.dom.Element;

import org.w3c.dom.Node;

import org.w3c.dom.NodeList;



public class XMLReader {



 public static void main(String argv[]) {



  try {

  File file = new File("c:\\MyXMLFile.xml");

  DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

  DocumentBuilder db = dbf.newDocumentBuilder();

  Document doc = db.parse(file);

  doc.getDocumentElement().normalize();

  System.out.println("Root element " + doc.getDocumentElement().getNodeName());

  NodeList nodeLst = doc.getElementsByTagName("employee");

  System.out.println("Information of all employees");



  for (int s = 0; s < nodeLst.getLength(); s++) {



    Node fstNode = nodeLst.item(s);

    

    if (fstNode.getNodeType() == Node.ELEMENT_NODE) {

  

           Element fstElmnt = (ElementfstNode;

      NodeList fstNmElmntLst = fstElmnt.getElementsByTagName("firstname");

      Element fstNmElmnt = (ElementfstNmElmntLst.item(0);

      NodeList fstNm = fstNmElmnt.getChildNodes();

      System.out.println("First Name : "  ((NodefstNm.item(0)).getNodeValue());

      NodeList lstNmElmntLst = fstElmnt.getElementsByTagName("lastname");

      Element lstNmElmnt = (ElementlstNmElmntLst.item(0);

      NodeList lstNm = lstNmElmnt.getChildNodes();

      System.out.println("Last Name : " ((NodelstNm.item(0)).getNodeValue());

    }



  }

  catch (Exception e) {

    e.printStackTrace();

  }

 }

}

Этот совет Java иллюстрирует способ создания пустого документа DOM. Java предоставляет класс DocumentBuilder который обеспечивает функциональные возможности создания документов. Разработчик может создавать различного рода документов с использованием этого класса.


    public static Document createDomDocument() {

        try {

            DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();

            Document doc = builder.newDocument();

            return doc;

        catch (ParserConfigurationException e) {

        }

        return null;

    }

Этот совет Java иллюстрирует метод примера Quintessential программа для создания документов DOM из файла XML. Это может включать разбор документа XML, DOM документ является возвращение после разбора документа XML.


    import java.io.*;

    import javax.xml.parsers.*;

    import org.w3c.dom.*;

    import org.xml.sax.*;

    

    public class BasicDom {

        public static void main(String[] args) {

            Document doc = parseXmlFile("input.xml"false);

        }

    

        // If validating is true, the contents is validated against the DTD

        // specified in the file.

        public static Document parseXmlFile(String filename, boolean validating) {

            try {

                // Create a builder factory

                DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

                factory.setValidating(validating);

    

                // Create the builder and parse the file

                Document doc = factory.newDocumentBuilder().parse(new File(filename));

                return doc;

            catch (SAXException e) {

                // A parsing error occurred; the xml input is not valid

            catch (ParserConfigurationException e) {

            catch (IOException e) {

            }

            return null;

        }

    }

Этот совет Java иллюстрирует метод примера Quintessential программа Parse файле XML с помощью SAX. Простой API для XML (SAX) входит в состав Java API для обработки XML (JAXP). Наряду с DOM, SAX является одним из двух распространенных способов писать программное обеспечение, которое обращается к XML-данных. Использование SAX с JAXP позволяет разработчикам похода на основе данных XML последовательно, один элемент за раз, используя модель делегации событие. Встречаются Каждый раз, когда элементы структуры XML, срабатывает событие. Разработчикам писать обработчики событий, чтобы определить пользовательские обработки событий, которые они считают важными.


    import java.io.*;

    import javax.xml.parsers.*;

    import org.xml.sax.*;

    import org.xml.sax.helpers.*;

    

    public class BasicSax {

        public static void main(String[] args) {

            // Create a handler to handle the SAX events generated during parsing

            DefaultHandler handler = new MyHandler();

    

            // Parse the file using the handler

            parseXmlFile("infilename.xml", handler, false);

        }

    

        // DefaultHandler contain no-op implementations for all SAX events.

        // This class should override methods to capture the events of interest.

        static class MyHandler extends DefaultHandler {

        }

    

        // Parses an XML file using a SAX parser.

        // If validating is true, the contents is validated against the DTD

        // specified in the file.

        public static void parseXmlFile(String filename, DefaultHandler handler, 

    boolean validating) {

            try {

                // Create a builder factory

                SAXParserFactory factory = SAXParserFactory.newInstance();

                factory.setValidating(validating);

    

                // Create the builder and parse the file

                factory.newSAXParser().parse(new File(filename), handler);

            catch (SAXException e) {

                // A parsing error occurred; the xml input is not valid

            catch (ParserConfigurationException e) {

            catch (IOException e) {

            }

        }

    }