Сохранение дерева DOM XML-файла javax.xml.parsers

Одним из основных недостатков DOM является то, что она не содержит средства для сохранения созданных или измененных документов. Таким образом, если мы хотим создать новый ДОМ-содержимое и сохранить его в файл, мы должны написать собственный сериалайзера. Некоторые XML-пакеты, такие как Xerces-Д укрепление таких классов, позволяющая писать ДОМ-дерево в файл. Но это не определено в стандарте DOM. Пример ниже демонстрирует использование расширенного API для сохранения DOM:


import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;



import org.apache.xml.serialize.XMLSerializer;



import org.w3c.dom.*;



/**

 * This sample program shows how to save new document

 * to a file using Xerces-J class XMLSerializer.

 */



public class Test {

  public static void main(String[] args) {

    try {

    // first of all we request out DOM-implementation:

    DocumentBuilderFactory factory = 

      DocumentBuilderFactory.newInstance();

    // then we have to create document-loader:

    DocumentBuilder loader = factory.newDocumentBuilder();



    // createing a new DOM-document...

    Document document = loader.newDocument();



    // create root-element

    Element order = document.createElement("purchase-order");

    document.appendChild(order);

    // ... compose the rest document content ...

    

    // use specific Xerces class to write DOM-data to a file:

    XMLSerializer serializer = new XMLSerializer();

    serializer.setOutputCharStream(

      new java.io.FileWriter("order.xml"));

    serializer.serialize(document);



    catch (Exception ex) {

      ex.printStackTrace();

    }

  }

}

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>