JTree in XML umwandeln

JaX1983

Grünschnabel
hallo zusammen,
kann mir jemand eine einfache möglichtkeit nennen, wie ich ein jtree objekt in ein xml file schreibe?
mfg

jax
 
Hallo,

eine Möglichkeit wäre, dass du dir ein DOM-Baum aufbaust und diesen dann in ein XML-File schreibst.
Eine andere Möglichkeit wäre noch, dass du dir die XML-Datei selbst zusammen baust. Also du nimmst die ein Element aus dem Baum. Schreibst den Text als Element in die Datei. Schreibst dann alle Kinder des Knotens in die Datei und schließt dann das Element.

Wenn das hier zu unverständlich war, dann poste ich gerne später noch ein kleines Beispiel.

MFG

zEriX
 
danke für deine hilfe
ich denke, die zweite möglichkeit würde sich in meinem fall sehr anbieten
ich wäre froh, wenn du mir ein kleines beispiel posten könntest.
 
Hier ist mal ein Beispiel.

Java:
import java.io.IOException;
import java.io.StringWriter;
import java.io.Writer;
import java.util.Enumeration;

import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;

public class JTreeToXMLExample
{

  public JTreeToXMLExample()
  {
    
    
    
    JTree tree = new JTree();
    
    StringWriter writer = new StringWriter();
    
    StringBuilder b = new StringBuilder();
    
    writeToXML((DefaultMutableTreeNode)tree.getModel().getRoot(), writer, b);
    
    System.out.println(writer.toString());
  }

  public void writeToXML(DefaultMutableTreeNode node, Writer writer, StringBuilder b)
  {
    String text = node.getUserObject().toString();
    b.setLength(0);
    try
    {
      b.append("<").append(text);
      if (node.isLeaf())
      {
        b.append("/>\n");
        writer.write(b.toString());
      }
      else
      {
        b.append(">\n");
        writer.write(b.toString());
        
        Enumeration<DefaultMutableTreeNode> children = node.children();
        
        while(children.hasMoreElements()){
          writeToXML(children.nextElement(), writer, b);
        }
        b.setLength(0);
        b.append("</").append(text).append(">\n");
        writer.write(b.toString());
      }
    }
    catch (IOException e)
    {
      e.printStackTrace();
    }

  }
  
  public static void main(String[] args)
  {
    new JTreeToXMLExample();
  }

}

MFG

zEriX
 
Zurück