Convert Treeview to XML

BergJava

Aktives Mitglied
Hallo,

seid ihr über ein Beispiel gestolpert wo beschrieben wird wir man ein TreeView in ein XML File konvertieren kann?

Grüße
 

Flown

Administrator
Mitarbeiter
Das ist mal eine konkrete Frage, auf die ich antworten kann!
Du musst einen Top-Down Algorithmus schreiben, der beim root-Element aus dem TreeView (TreeView::getRoot) beginnt und jedes einzelne child dann richtig verarbeitet (TreeItem::getChildren).

Es gibt mehrere XML Frameworks für Java und Tutorials, aber mehr dazu bei Google.
 

BergJava

Aktives Mitglied
Danke, ich sehe gerade den Wald vor lauter Bäumen nicht

in WPF C# mache ich das so

Code:
   public void exportToXml(TreeView tv)
        {
            Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();

            dlg.Filter = "Text File (*.xml)|*.xml|Show All Files (*.*)|*.*";
            dlg.Title = "Save As";
            // Nullable<bool> result = dlg.ShowDialog();

            if (dlg.ShowDialog() == true)
            {


            sr = new StreamWriter(dlg.FileName, false, System.Text.Encoding.UTF8);


            // sr = new StreamWriter(filename, false, System.Text.Encoding.UTF8);
            //Write the header
            sr.WriteLine("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>");
            //Write our root node
          
            sr.WriteLine("</menu>");
            foreach (TreeViewItem node in tv.Items)
            {

                sr.WriteLine("<menu>");

                saveNode(node.Items.OfType<TreeViewItem>().ToArray());
                sr.WriteLine("</menu>");

            }

            //Close the root node
            sr.WriteLine("</>");
            sr.Close();
            }
        }

private void saveNode(TreeViewItem[] tnc)
        {
            foreach (TreeViewItem node in tnc)
            {
                //If we have child nodes, we'll write
                //a parent node, then iterrate through
                //the children

                if (node.Items.Count > 0)
                {

ich bin gerade echt zu blöd um das in JavaFX unzusetzen ;(( wie frage ich bei Java die for schleife ab??
 

Flown

Administrator
Mitarbeiter
Nur deine Lösung umgeschrieben:
Java:
public <T> void saveTreeView(TreeView<T> tv) {
  FileChooser fc = new FileChooser();
  File f = fc.showSaveDialog(null/* your stage */);
  if (f != null) {
    try (BufferedWriter bw = Files.newBufferedWriter(f.toPath(), StandardCharsets.UTF_8,
        StandardOpenOption.TRUNCATE_EXISTING, StandardOpenOption.CREATE, StandardOpenOption.WRITE)) {
      bw.write("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>");
      saveNode(tv.getRoot(), bw);
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

private <T> void saveNode(TreeItem<T> root, BufferedWriter writer) throws IOException {
  writer.write("<node>");
  writer.write(root.getValue().toString());
  for (TreeItem<T> child : root.getChildren()) {
    saveNode(child, writer);
  }
  writer.write("</node>");
}
 

BergJava

Aktives Mitglied
Hallo, noch eine kleine Frag:

Ich frage in C# ja den Items.Count ab um die ParentItems zu selektieren. Wie mache ich das hier.

Ich habe jetzt
Java:
private <T> void saveNode(TreeItem<T> root, BufferedWriter writer) throws IOException {
        
            TreeItem<T> parent= root.getParent();
//         {
             if( parent!=null){
          writer.write("<test22>"+root.getValue().toString()+"</test22>");
        
       
           }

aber das ist nicht das selbe..
 

BergJava

Aktives Mitglied
Hallo Danke, habs gelesen aber was gleichwertiges nicht gefunden

Das Habe ich
1
-13
2
3
Das hätte ich gern:

Code:
<menu>
<test222>1</test222>
<Item>
<name>13</name>
</Item>
<menu>
<test222>2</test222>
</menu>
<menu>
<test222>3</test222>
</menu>

Wenn ich es ohne Einschränkung durchlaufe bekommen ich das:

Code:
<menu>
<test222>1</test222>
<Item>
<test>1</test><test222>13</test222>
<Item>
<test>13</test>
</menu>

Code:
Code:
 writer.write("<test222>"+root.getValue().toString()+"</test222>");
             writer.newLine();
         writer.write("<Item>");
         writer.newLine();
         writer.write("<test>"+root.getValue().toString()+"</test>");
     
           for (TreeItem<T> child : root.getChildren()) {
         saveNode(child, writer);
      
           }
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H getSelectedItem() (can't convert to String) AWT, Swing, JavaFX & SWT 3
M JavaFX TreeView - TreeItem - SelectedItem AWT, Swing, JavaFX & SWT 7
W JavaFX JavaFX - TreeView will nicht AWT, Swing, JavaFX & SWT 8
ProggersWorld JavaFX Icons im TreeView werden nicht angezeigt AWT, Swing, JavaFX & SWT 1
L JavaFX TreeView aufstellen läuft irgendwie auf Endlosschleife AWT, Swing, JavaFX & SWT 3
L JavaFX TreeView Edit Mode über F2 AWT, Swing, JavaFX & SWT 13
ralfb1105 JavaFX TreeView dynamisch aus Datenbank Tabelle erstellen AWT, Swing, JavaFX & SWT 22
B JavaFx TreeView mit file system AWT, Swing, JavaFX & SWT 1
D JavaFX TreeView stylen AWT, Swing, JavaFX & SWT 6
L JavaFX TreeView mit File Objects AWT, Swing, JavaFX & SWT 0
P TreeView automatisch an große von Inhalt anpassen AWT, Swing, JavaFX & SWT 3
P X extends TreeView - eigene Methoden AWT, Swing, JavaFX & SWT 5
I JavaFX Im TreeView, TreeItems sortieren AWT, Swing, JavaFX & SWT 3
B TreeView cellFactory AWT, Swing, JavaFX & SWT 4
D javafx.scene.control.TreeView als dropdown Menü AWT, Swing, JavaFX & SWT 6
K JavaFX Mehrere Cell Editors in einem TreeView Item AWT, Swing, JavaFX & SWT 2
I JavaFX TreeView Pfeil nicht mehr Klickbar machen AWT, Swing, JavaFX & SWT 1
B JavaFX Wie Treeview aus xml erzeugen AWT, Swing, JavaFX & SWT 11
N JavaFX TreeView mit verschiedenen Datentypen AWT, Swing, JavaFX & SWT 8
C SWT Treeview mit Bilder im Label verändert Expanded Icon AWT, Swing, JavaFX & SWT 1
agent47 JavaFX TreeView Struktur dynamisch einlesen AWT, Swing, JavaFX & SWT 1
Tom299 JavaFX TreeView Expanded-Icon ändern AWT, Swing, JavaFX & SWT 0
ToBJo JavaFX TreeView zerstört sich selbst AWT, Swing, JavaFX & SWT 1
G JavaFX TreeView stylen AWT, Swing, JavaFX & SWT 2
G JavaFX TreeView AWT, Swing, JavaFX & SWT 3
G Problem mit TreeView AWT, Swing, JavaFX & SWT 2
L TreeViewerColumn - gesamte TreeView-breite nutzen? AWT, Swing, JavaFX & SWT 5
T SWT Treeview größe ändern AWT, Swing, JavaFX & SWT 2
C SWT Error/Warnings in TreeView AWT, Swing, JavaFX & SWT 2
P Eindeutiger Knoten im Treeview AWT, Swing, JavaFX & SWT 3
K SystemIcons v. Dateien & Verz. im TreeView anzeigen AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben