mrrobse: Tabelle dynamisch mit XSLT

Hallo,

seit kurzem mache ich berufsbedingt meine ersten Schritte mit XSLT und XPath und bin natürlich gleich an meine Grenzen bei folgendem Problem gestoßen. Vielleicht kann mir hier jemand helfen

Ein XML-Dokument hat grob folgende Struktur. Es sind noch wesentlich mehr Elemente innerhalb eines <TestCase> enthalten, aber das für meine Frage Relevante ist drin.

<TestCaseData>  
  <TestCase>  <!-- Diese <TestCase> Struktur kann beliebig oft wiederholt werden-->  
    <TestCaseId>ID 1</TestCaseId>  
    <Name>Name 1</Name>  
    <FolderYn>Y</FolderYn>  
  </TestCase>  
  <TestCase>  
    [...]  
  </TestCase>  
</TestCaseData>  
[/code}  
  
Dieses XML möchte ich in eine HTML-Struktur transformieren, die folgendermaßen aufgebaut sein soll.  
  
* Wenn ein <TestCase> den Wert "Y" im Element <FolderYn> enthält, so soll <Name> als Überschrift ausgegeben werden.  
* Wenn auf einen <TestCase> mit <FolderYn>='Y' ein <TestCase> mit <FolderYn>='N' folgt, dann soll eine Tabelle aufgemacht werden.  
* Für jeden folgenden <TestCase> der ein <FolderYn>='N' enthält, wird <Name> als neue Tabellenreihe angefügt.  
* Wenn auf einen <TestCase> mit <FolderYn>='N' ein <TestCase> mit <FolderYn>='Y' folgt, dann soll die Tabelle geschlossen werden.  
  
  
Also im Endeffekt dass so etwas entsteht:  
  
[code lang=html]<h3>Name 1</h3> <!-- Solange kein FolderYn=N folgt -->  
<h3>Name 2</h3> <!-- Hierauf folgt ein FolderYn=Y -->  
<table>  
	<tr>  
		<th>Test Case ID</th>  
		<th>Name 3</th>  
	</tr>  
	<tr> <!-- Solange jedes folgende FolderYn=N ist, hänge eine Zeile ran -->  
		<td>ID 1</td>  
		<td>Name 4</td>  
	</tr>  
	<tr>  
		<td>ID 2</td>  
		<td>Name 5</td>  
	</tr>  
</table>  
<h3>Name 6</h3> <!-- Hier ist wieder ein FolderYn=Y -->  
<table>  
	<tr>  
		<th>Test Case ID</th>  
		<th>Name 7</th>  
	</tr>  
	<tr>  
		<td>ID 3</td>  
		<td>Name 8</td>  
	</tr>  
	<tr>  
		<td>ID 4</td>  
		<td>Name 9</td>  
	</tr>  
</table>

Ich hoffe, das ist einigermaßen verständlich beschrieben Wenn ihr Rückfragen habt, immer her damit! Dann versuche ich es noch etwas deutlicher zu formulieren.

Ich habe bereits verschiedene Ansätze, if-Anweisungen und for-each versucht, aber ich schaffe es einfach nicht. Hat hier jemand eine Idee?

Viele Grüße,

Robert

  1. Also ehrlich,

    das ist muehsehlig zu erraten wo dein Problem liegt. Insbesondere mit solch einer kurzen XML Quelle. Und wie sehen deine ersten Schritte hisichtlihcht xsl aus? Also beschreibe mal den Fall, der sich aus eine beispiel xml ergibt und du nicht wie gewuenscht umwandeln kannst.

    Man mag ja helfen, aber das Problem sollte irgendwie verstaendlich erklaert werden - ich habe es zumindest nicht verstanden.

    Gruss, Holge r