order a list like in xml schema java



I have an xml like this one:



<part>
<desc>qwe</desc>
<qty>2</qty>
</part>
<part>
<desc>AAAA</desc>
<qty>1</qty>
<part>
<desc>BBBB</desc>
<qty>1</qty>
<part>
<desc>CCCC</desc>
<qty>13</qty>
<part>
<desc>DDDD</desc>
<qty>12</qty>
<part>
<desc>EEEE</desc>
<qty>21</qty>
</part>
</part>
</part>
<part>
<desc>CCCC1111</desc>
<qty>13</qty>
<part>
<desc>DDDD1111</desc>
<qty>12</qty>
<part>
<desc>EEEE1111</desc>
<qty>21</qty>
</part>
</part>
</part>
</part>
<part>
<desc>G</desc>
<qty>1</qty>
<part>
<desc>H</desc>
<qty>13</qty>
<part>
<desc>I</desc>
<qty>12</qty>
</part>
</part>
</part>


Now I want to print it out in the "same" structure. I created a method, but the output differs from expectes:



public static void itarate(List<Part> list){
for (int i = 0; i<list.size(); i++){
System.out.println(list.get(i).getDesc() + " x " + list.get(i).getQty());
if (list.get(i).getListParts() != null){
System.out.print(" ");
itarate(list.get(i).getListParts());

}
}
}


The output:



qwe x 2
AAAA x 1
BBBB x 1
CCCC x 13
DDDD x 12
EEEE x 21
CCCC1111 x 13
DDDD1111 x 12
EEEE1111 x 21
G x 1
H x 13
I x 12


but I actually want something like:



qwe x 2
AAAA x 1
BBBB x 1
CCCC x 13
DDDD x 12
EEEE x 21
CCCC1111 x 13
DDDD1111 x 12
EEEE1111 x 21
G x 1
H x 13
I x 12


How can I achieve that (so the xml structure is similar to the code output)? Thanks in advance.


No comments:

Post a Comment