Package com.fengjing.framework.stax.tutorial

Source Code of com.fengjing.framework.stax.tutorial.StaxWriter

package com.fengjing.framework.stax.tutorial;

import java.io.FileOutputStream;

import javax.xml.stream.XMLEventFactory;
import javax.xml.stream.XMLEventWriter;
import javax.xml.stream.XMLOutputFactory;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.events.Characters;
import javax.xml.stream.events.EndElement;
import javax.xml.stream.events.StartDocument;
import javax.xml.stream.events.StartElement;

import org.junit.Test;

public class StaxWriter {

  private String configFile;

  public void setFile(String configFile) {
    this.configFile = configFile;
  }

  public void saveConfig() throws Exception {
    // Create a XMLOutputFactory
    XMLOutputFactory outputFactory = XMLOutputFactory.newInstance();
    // Create XMLEventWriter
    XMLEventWriter eventWriter = outputFactory.createXMLEventWriter(new FileOutputStream(configFile));
    // Create a EventFactory
    XMLEventFactory eventFactory = XMLEventFactory.newInstance();
   
    //XMLEvent end = eventFactory.createDTD("\n");
   
    // Create and write Start Tag
    StartDocument startDocument = eventFactory.createStartDocument();
    eventWriter.add(startDocument);

    // Create config open tag
    StartElement configStartElement = eventFactory.createStartElement("","", "config");
    eventWriter.add(configStartElement);
   
    //eventWriter.add(end);
   
    // Write the different nodes
    createNode(eventWriter, "mode", "1");
    createNode(eventWriter, "unit", "901");
    createNode(eventWriter, "current", "100");
    createNode(eventWriter, "interactive", "5");

    eventWriter.add(eventFactory.createEndElement("", "", "config"));
   
    //eventWriter.add(end);
   
    eventWriter.add(eventFactory.createEndDocument());
    eventWriter.close();
  }

  private void createNode(XMLEventWriter eventWriter, String name,
      String value) throws XMLStreamException {

    XMLEventFactory eventFactory = XMLEventFactory.newInstance();
   
    //XMLEvent end = eventFactory.createDTD("\n");
    //XMLEvent tab = eventFactory.createDTD("\t");
   
    // Create Start node
    StartElement sElement = eventFactory.createStartElement("", "", name);
    //eventWriter.add(tab);
    eventWriter.add(sElement);
    // Create Content
    Characters characters = eventFactory.createCharacters(value);
    eventWriter.add(characters);
    // Create End node
    EndElement eElement = eventFactory.createEndElement("", "", name);
    eventWriter.add(eElement);
    //eventWriter.add(end);

  }

  @Test
  public void test() {
    StaxWriter configFile = new StaxWriter();
    configFile.setFile("configx.xml");
    try {
      configFile.saveConfig();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

}
TOP

Related Classes of com.fengjing.framework.stax.tutorial.StaxWriter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.