<br><font size=2 face="sans-serif">I had the following from one of my extended element (Elementx) classes, you can replace this with the root note for the tree</font>
<br>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; </tt></font><font size=2 color=#4040c2><tt>/**</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</tt></font><font size=2 color=#4040c2><tt>*</tt></font><font size=2><tt> </tt></font><font size=2 color=#4040c2><tt>Returns</tt></font><font size=2><tt> </tt></font><font size=2 color=#4040c2><tt>a</tt></font><font size=2><tt> </tt></font><font size=2 color=#4040c2><tt>DefaultMutableTreeNode</tt></font><font size=2><tt> </tt></font><font size=2 color=#4040c2><tt>for</tt></font><font size=2><tt> </tt></font><font size=2 color=#4040c2><tt>use</tt></font><font size=2><tt> </tt></font><font size=2 color=#4040c2><tt>in</tt></font><font size=2><tt> </tt></font><font size=2 color=#4040c2><tt>a</tt></font><font size=2><tt> </tt></font><font size=2 color=#4040c2><tt>JTree</tt></font><font size=2><tt> </tt></font><font size=2 color=#4040c2><tt>which</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</tt></font><font size=2 color=#4040c2><tt>*</tt></font><font size=2><tt> </tt></font><font size=2 color=#4040c2><tt>represents</tt></font><font size=2><tt> </tt></font><font size=2 color=#4040c2><tt>the</tt></font><font size=2><tt> </tt></font><font size=2 color=#4040c2><tt>element</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</tt></font><font size=2 color=#4040c2><tt>*</tt></font><font size=2><tt> </tt></font><font size=2 color=#71b2cf><tt><b>@return</b></tt></font><font size=2><tt> </tt></font><font size=2 color=#4040c2><tt>DefaultMutableTreeNode</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</tt></font><font size=2 color=#4040c2><tt>*/</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; </tt></font><font size=2 color=#820040><tt>public</tt></font><font size=2><tt> DefaultMutableTreeNode getTreeNode() {</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DefaultMutableTreeNode treeNode = </tt></font><font size=2 color=#820040><tt>new</tt></font><font size=2><tt> DefaultMutableTreeNode(</tt></font><font size=2 color=#820040><tt>this</tt></font><font size=2><tt>);</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; addChildren(treeNode, </tt></font><font size=2 color=#820040><tt>this</tt></font><font size=2><tt>);</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </tt></font><font size=2 color=#820040><tt>return</tt></font><font size=2><tt> treeNode;</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; }</tt></font>
<br>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; </tt></font><font size=2 color=#4040c2><tt>/**</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</tt></font><font size=2 color=#4040c2><tt>*</tt></font><font size=2><tt> </tt></font><font size=2 color=#4040c2><tt>Internal</tt></font><font size=2><tt> </tt></font><font size=2 color=#4040c2><tt>function</tt></font><font size=2><tt> </tt></font><font size=2 color=#4040c2><tt>to</tt></font><font size=2><tt> </tt></font><font size=2 color=#4040c2><tt>support</tt></font><font size=2><tt> </tt></font><font size=2 color=#4040c2><tt>get</tt></font><font size=2><tt> </tt></font><font size=2 color=#4040c2><tt>tree</tt></font><font size=2><tt> </tt></font><font size=2 color=#4040c2><tt>node</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</tt></font><font size=2 color=#4040c2><tt>*/</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; </tt></font><font size=2 color=#820040><tt>private</tt></font><font size=2><tt> </tt></font><font size=2 color=#820040><tt>static</tt></font><font size=2><tt> </tt></font><font size=2 color=#820040><tt>void</tt></font><font size=2><tt> addChildren(DefaultMutableTreeNode tn,Elementx element) {</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DefaultMutableTreeNode node;</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; List children = element.getChildren();</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Iterator it = children.iterator();</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </tt></font><font size=2 color=#820040><tt>while</tt></font><font size=2><tt> (it.hasNext()) {</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Elementx child = (Elementx) it.next();</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; node = </tt></font><font size=2 color=#820040><tt>new</tt></font><font size=2><tt> DefaultMutableTreeNode(child);</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tn.add(node);</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; addChildren(node, child);</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; };</tt></font>
<br><font size=2><tt>&nbsp; &nbsp; &nbsp; &nbsp; }</tt></font><font size=2 face="sans-serif"><br>
<br>
/Phill<br>
IS Dept, Software Engineer.<br>
phill_perryman@mitel.com<br>
http://www.mitel.com<br>
Tel: +44 1291 436023</font>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td>
<td><font size=1 face="sans-serif"><b>&quot;J. Albers&quot; &lt;jalbers@cs.uu.nl&gt;</b></font>
<br><font size=1 face="sans-serif">Sent by: jdom-interest-admin@jdom.org</font>
<p><font size=1 face="sans-serif">23/01/2004 14:14</font>
<br>
<td><font size=1 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; </font>
<br><font size=1 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; To: &nbsp; &nbsp; &nbsp; &nbsp;&lt;jdom-interest@jdom.org&gt;</font>
<br><font size=1 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; cc: &nbsp; &nbsp; &nbsp; &nbsp;</font>
<br><font size=1 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; Subject: &nbsp; &nbsp; &nbsp; &nbsp;[jdom-interest] JTree</font></table>
<br>
<br>
<br><font size=2 face="Courier New">Hey,<br>
<br>
I want to list an XML file into &nbsp;a JTree, so that it has the same hierarchy<br>
as the original document. The code now does<br>
only list all elements in one row, but no nesting. Does anyone know how i<br>
can get the elements to be outputted with the same<br>
nesting as in the XML file?<br>
<br>
Grtz, Joachim.<br>
<br>
<br>
private static void listElements(Element e)<br>
 {<br>
 &nbsp;int depth = 0;<br>
 &nbsp;DefaultMutableTreeNode newelements = null;<br>
 &nbsp;DefaultMutableTreeNode newchildren = null;<br>
 &nbsp;System.out.println(&quot;*Element, name:&quot; + e.getName() +<br>
 &nbsp; &quot;, text:&quot; + e.getText()) ;<br>
 &nbsp;newelements = new DefaultMutableTreeNode(e.getName());<br>
 &nbsp;Main.elements.add(newelements);<br>
 &nbsp;if(e.getText() != &quot;&quot;)<br>
 &nbsp;{<br>
 &nbsp; newchildren = new DefaultMutableTreeNode(e.getText());<br>
 &nbsp; Main.elements.add(newchildren);<br>
 &nbsp;}<br>
<br>
<br>
 &nbsp;//List all attributes<br>
 &nbsp;List as = e.getAttributes();<br>
 &nbsp;for (Iterator i = as.iterator();i.hasNext();)<br>
 &nbsp;{<br>
 &nbsp; depth++;<br>
 &nbsp; Attribute a = (Attribute)i.next();<br>
 &nbsp; System.out.println(&quot;*Attribute, name:&quot; + a.getName() +<br>
 &nbsp; &nbsp;&quot;, value:&quot; + a.getValue()) ;<br>
 &nbsp;}<br>
<br>
 &nbsp;//List all children<br>
 &nbsp;List c = e.getChildren();<br>
<br>
 &nbsp;for (Iterator i = c.iterator();i.hasNext();)<br>
 &nbsp;{<br>
 &nbsp; depth++;<br>
 &nbsp; System.out.println(&quot;depth = &quot;+depth);<br>
 &nbsp; Element n = (Element)i.next();<br>
 &nbsp; listElements(n);<br>
 &nbsp;}<br>
 }<br>
<br>
_______________________________________________<br>
To control your jdom-interest membership:<br>
http://lists.denveronline.net/mailman/options/jdom-interest/youraddr@yourhost.com<br>
</font>
<br>
<br>