Categorías
StAX

Código Java: use StAX para crear un archivo xml

El objetivo de este ejemplo es producir el siguiente archivo xml. El enfoque es a través de StAX API – XMLStreamWriter. Puede que sean solo unos segundos el trabajo para crear un archivo xml usando StAX.

Primera clase de definición de ciudad

class City{
    private int id;
    private String name;
 
    public City()    {
 
    }
 
    public City( int id, String name )    {
            this.id = id;
            this.name = name;
    }
 
    public int getId()    {
            return id;
    }
 
    public void setId( int id )    {
            this.id = id;
    }
 
    public String getName()    {
            return name;
    }
 
    public void setName( String name )   {
            this.name = name;
    }
 
}

El código de uso de la API de StAX.

public class Main {
 
	public static void main(String[] args){
		City c1 = new City(100, "Newark");
		City c2 = new City(200, "New York");
 
		ArrayList<City> l = new ArrayList<City>();
		l.add(c1);
		l.add(c2);
 
		stAXToXml(l);
	}
 
	public static void stAXToXml(List<City> list) {
		String xmlStr = null;
		try {
			if (null != list && !list.isEmpty()) {
				StringWriter writerStr = new StringWriter();
				// PrintWriter writerXml = new PrintWriter(new
				// OutputStreamWriter( new FileOutputStream( "city-StAX.xml" ),
				// "utf-8" ));
 
				// define XMLEventWriter and XMLStreamWriter factory instance
				XMLOutputFactory xof = XMLOutputFactory.newInstance();
				// only one of the following is required.
				XMLStreamWriter xmlsw = xof.createXMLStreamWriter(writerStr);
				// XMLStreamWriter xmlsw = xof.createXMLStreamWriter( writerXml
				// );
 
				// write declaration
				xmlsw.writeStartDocument("UTF-8", "1.0");
				xmlsw.writeStartElement("cities");
 
				// write comments
				xmlsw.writeComment("city info");
				for (City po : list) {
					xmlsw.writeStartElement("city");
 
					// add <id> node
					xmlsw.writeStartElement("id");
					xmlsw.writeCharacters(String.valueOf(po.getId()));
					// end <id> node
					xmlsw.writeEndElement();
 
					// add <name> node
					xmlsw.writeStartElement("name");
					xmlsw.writeCharacters(po.getName());
					// end <name> node
					xmlsw.writeEndElement();
 
					xmlsw.writeEndElement();
				}
				// end <cities> node
				xmlsw.writeEndElement();
				// end XML document
				xmlsw.writeEndDocument();
				xmlsw.flush();
				xmlsw.close();
 
				xmlStr = writerStr.getBuffer().toString();
				writerStr.close();
			}
		} catch (XMLStreamException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		System.out.println("StAX:" + xmlStr);// print result
	}
}
  StAX: Obtener EntityReferences en un archivo XML

Aquí hay una publicación sobre cómo analizar XML utilizando StAX XMLEventReader.

Por Programación.Click

Más de 20 años programando en diferentes lenguajes de programación. Apasionado del code clean y el terminar lo que se empieza. ¿Programamos de verdad?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *