spyro: Liste nachträglich hierarchisieren

Beitrag lesen

Hallo zusammen,

ich versuche seit einem Tag verzweifelt ein an sich simples (?) Problem zu lösen. Eine "flache" Liste soll nachträglich hierarchisiert werden. Die Ebene ergibt sich indirekt aus dem Namen (hier: Stufe 1-3) (muss aber nicht unbedingt generisch ermittelt werden). Ich habe das Problem jetzt mal so weit wie möglich heruntergebrochen:

Quell-XML:

  
<root>  
 <p>ABC</p>  
  
 <li_1>1</li_1>  
 <li_2>1.1</li_2>  
 <li_2>1.2</li_2>  
 <li_1>2</li_1>  
 <li_2>2.1</li_2>  
 <li_3>2.1.2</li_3>  
 <li_1>3</li_1>  
 <li_2>3.1</li_2>  
 <li_1>4</li_1>  
 <li_1>5</li_1>  
  
 <p>DEF</p>  
</root>  

Ziel-XML:

  
<root>  
 <abs>ABC</abs>  
  
 <ul>  
  <li>1  
   <ul>  
    <li>1.1</li>  
    <li>1.2</li>  
   </ul>  
  </li>  
  <li>2  
   <ul>  
    <li>2.1  
    <ul>  
     <li>2.1.2</li>  
    </ul>  
  </li>  
  <li>3  
   <ul>  
    <li>3.1</li>  
   </ul>  
  </li>  
  <li>4</li>  
  <li>5</li>  
 </ul>  
  
  
 <abs>DEF</abs>  
</root>  

Ich habe jetzt mit xsl:for-each-group experimentiert und die "Muench'sche Methode" (xsl:generate-id und xsl:key) ausprobiert aber ich stelle mich einfach zu blöd an. Wenn mir hier jemand helfen könnte wäre ich wirklich dankbar.

Viele Grüße,
Spyro