Foros del Web » Programación para mayores de 30 ;) » Java »

problema DefaultMutableTreeNode a XML

Estas en el tema de problema DefaultMutableTreeNode a XML en el foro de Java en Foros del Web. Hola, estoy desarrolllando una API y tengo que almacenar en un XML una serie de objetos que contienen listas de otros objetos, y uno de ...
  #1 (permalink)  
Antiguo 12/05/2011, 04:11
 
Fecha de Ingreso: mayo-2011
Mensajes: 2
Antigüedad: 12 años, 11 meses
Puntos: 0
problema DefaultMutableTreeNode a XML

Hola, estoy desarrolllando una API y tengo que almacenar en un XML una serie de objetos que contienen listas de otros objetos, y uno de estos objetos tiene como atributo un DefaultMutableTreeNode, cuyos nodos almacenan una clase creada por mi.

He probado usando xStream, sobre el objeto principal que contiene las referencias a los demas:


Código:
 XStream xstream=new XStream();
        String xml = xstream.toXML(this);
        System.out.println(xml);

el resultado es la estructura completa de las clases, pero sin la información dentro de cada nodo:


Código:
<api.Salida>
  <listaFrames>
    <api.Escena>
      <n__escena>0</n__escena>
      <listaRamas>
        <api.Rama>
          <n__rama>0</n__rama>
          <neurita serialization="custom">
            <javax.swing.tree.DefaultMutableTreeNode>
              <default>
                <allowsChildren>true</allowsChildren>
                <children>
                  <javax.swing.tree.DefaultMutableTreeNode serialization="custom">
                    <javax.swing.tree.DefaultMutableTreeNode>
                      <default>
                        <allowsChildren>true</allowsChildren>
                        <parent class="javax.swing.tree.DefaultMutableTreeNode" reference="../../../../../../.."/>
                      </default>
                      <object-array/>
                    </javax.swing.tree.DefaultMutableTreeNode>
                  </javax.swing.tree.DefaultMutableTreeNode>
                  <javax.swing.tree.DefaultMutableTreeNode serialization="custom">
                    <javax.swing.tree.DefaultMutableTreeNode>
                      <default>
                        <allowsChildren>true</allowsChildren>
                        <children>
                          <javax.swing.tree.DefaultMutableTreeNode serialization="custom">
                            <javax.swing.tree.DefaultMutableTreeNode>
...
...
...etc

La cosa está en que cuando cojo este xml y lo vuelvo a convertir en un objeto, como es lógico, los nodos del árbol tienen el valor null.

Si pongo el DefaultMutableTreeNode en modo static, el archivo xml queda así:


Código:
<api.Salida>
  <listaFrames>
    <api.Escena>
      <n__escena>0</n__escena>
      <listaRamas>
        <api.Rama>
          <n__rama>0</n__rama>
        </api.Rama>
      </listaRamas>
    </api.Escena>
    <api.Escena>
      <n__escena>1</n__escena>
      <listaRamas>
        <api.Rama>
          <n__rama>0</n__rama>
        </api.Rama>
      </listaRamas>
    </api.Escena>
  </listaFrames>
</api.Salida>

Aquí solo se observa la estructura de la clase principal, ¿Por qué pasa esto? Yo creia que lo que debia hacer era guardar cada clase en un xml distinto, pero comprobe con otra estructura de objetos que contenian atributos int y string y funcionó perfectamente.

aun intentando guardar solo el objeto que contiene el DefaultTreeNode en un xml no consigo nada. ¿Que debo utilizar?

He leido que la gente utiliza XMLEncoder para construir un xml de un JTree, pero he intentado utilizarlo con la clase que tiene un DefaultTreeNode:


Código:
                XMLEncoder e = new XMLEncoder(
                new BufferedOutputStream(
                    new FileOutputStream("E:/Test.xml")));
		e.writeObject(s1);
		e.close();

y el resutado es:


Código:
<?xml version="1.0" encoding="UTF-8"?> 
<java version="1.6.0_24" class="java.beans.XMLDecoder"> 
 <object class="api.Salida"/> 
</java>
No aparece ningún atributo de mi clase, no se que debo hacer.

Si alguien me puede orientar un poco, es la primera vez que manejo java y estoy un poco abrumado.


Gracias.
  #2 (permalink)  
Antiguo 16/05/2011, 03:47
 
Fecha de Ingreso: mayo-2011
Mensajes: 2
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: problema DefaultMutableTreeNode a XML

De verdad nadie puede ayudarme aunque sea para contarme como utilizo XMLEncoder??

Etiquetas: defaultmutabletreenode, xml, xmlencoder, xstream
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:03.