예제 #1
0
  public static void guardarArchivoXML(ListaPartida listaDePartidas) {
    Partida nodoAuxiliar;

    /* Se crea una raiz de la estructura */
    Element root = new Element("partidas");

    /* Es posible agregar atributos a la estructura inicial */
    root.setAttribute("tipo", "lista de partidas");

    Iterator iterador = listaDePartidas.getIterator();

    while (iterador.hasNext()) {
      /* Se crea la etiqueta "usuario" */
      Element partidas = new Element("partida");

      nodoAuxiliar = (Partida) iterador.next();

      /* Se crean las etiquetas nombre, apellido y cargo */
      Element nick = new Element("nick");
      Element ID = new Element("ID");
      Element fechainicio = new Element("fechainicio");

      /* Se inicializa cada etiqueta con sus valores de la lista */
      nick.setText(nodoAuxiliar.getNickname());
      ID.setText(Integer.toString(nodoAuxiliar.getID()));
      fechainicio.setText(nodoAuxiliar.getFechainicio());

      /* Se añaden las etiquetas a la etiqueta principal (usuario)    */
      /* estableciendo que un usuario tiene nombre, apellido y cargo  */
      partidas.addContent(nick);
      partidas.addContent(ID);
      partidas.addContent(fechainicio);

      /* Se añade el nuevo usuario a la estructura XML */
      root.addContent(partidas);
    }

    /* Se crea un documento nuevo */
    Document doc = new Document(root);

    try {
      /* Se genera un flujo de salida de datos XML */
      XMLOutputter out = new XMLOutputter();

      /* Se asocia el flujo de salida con el archivo donde se guardaran los datos */
      FileOutputStream file = new FileOutputStream(nombreArchivoPartida);

      /* Se manda el documento generado hacia el archivo XML */
      out.output(doc, file);

      /* Se limpia el buffer ocupado por el objeto file y se manda a cerrar el archivo */
      file.flush();
      file.close();

      /* En este caso se manda a imprimir el archivo por la consola   */
      /* ESTE PROCESO NO ES OBLIGATORIO PARA PROCESAR EL XML          */
      out.output(doc, System.out);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }