XSLT Problem bei HTML-Tabellen Darstellung

princ84

Grünschnabel
#1
Hallo Leute,
Ihr habt hier echt ein tolles forum! Ich habe vor einigen Wochen mit XSL angefangen und komm bei einem Problem nicht weiter!Ich würde gerne folgende Tabellen aus der unteren XML erstellen :

[table]
[tr]
[th]usegroup[/th]
[th]B[/th]
[th]D[/th]
[/tr]
[tr]
[td]Nennspannung[/td]
[td]300[/td]
[td]300[/td]
[/tr]
[tr]
[td]Nennstrom[/td]
[td]10 [/td]
[td]5[/td]
[/tr]
[tr]
[td]AWGl[/td]
[td]24-14[/td]
[td]24-14[/td]
[/tr]
[/table]
Tabelle1

und die zweite Variante, falls B und D nicht definiert sind:

[table]

[tr]
[td]Nennspannung[/td]
[td]300[/td]

[/tr]
[tr]
[td]Nennstrom[/td]
[td]10 [/td]

[/tr]
[tr]
[td]AWGl[/td]
[td]24-14[/td]

[/tr]
[/table]
Tabelle2

Ich benutze XSL 2.0.
Ich quäl mich hier schon seit letzer Woche damit herum, ich erhalte zwar die Informationen, also die Werte für B und D, aber kann diese nicht in einer Zeile für B und D Darstellen. Die Werte werden in unterschiedlichen Zeilen Dargestellt, siehe Tabelle 3


[table]
[tr]
[th]usegroup[/th]
[th]B[/th]
[th]D[/th]
[/tr]
[tr]
[td]Nennspannung[/td]
[td]300[/td]

[/tr]
[tr]
[td]Nennstrom[/td]
[td]10 [/td]

[/tr]
[tr]
[td]AWGl[/td]
[td]24-14[/td]

[/tr]
[tr]
[td]300[/td]
[/tr]
[tr]
[td]5[/td]
[/tr]
[tr]
[td]24-14[/td]
[/tr]

[/table]
Tabelle3

Mein Ansatz in XSLT sieht bisher folgendermaßen aus:

HTML:
<xsl:for-each select="FE[@tagName='usegroup']">
			<xsl:variable name="useValue" select="LayoutAttribute/@value"/>
			
			
			<xsl:for-each select="FE[@tagName='attribute']">
	<tr>
	
		<xsl:if test="$useValue = 'B' ">
		<td align="left" style="padding:10px; height:32px; width:450px; border:solid 1px #d8d8d8;">
						
						
							
							<xsl:for-each select="FE[@tagName='label'] /TXB  " >
								<xsl:value-of select="p"/><br/>
							</xsl:for-each> 
						</td>
					
					
					
						 <!--füllen der rechte Spalte in der Tabelle (Value Wert -->
						
						<td style="padding:10px; height:32px; width:450px; border:solid 1px #d8d8d8;">
							<xsl:for-each select="FE[@tagName='value'] ">
								<xsl:value-of select="TXB/p"/>
								<xsl:value-of select="TXT"/>
								<xsl:value-of select="STR"/>
								<xsl:value-of select="NUM/p"/>
								<xsl:value-of select="GRP/p"/>
								<br/>
							</xsl:for-each> 
						</td>
					 </xsl:if>
					 
					 	
						<xsl:if test="$useValue = 'D' ">
						<td style="padding:10px; height:32px; width:450px; border:solid 1px #d8d8d8;">
							<xsl:for-each select="FE[@tagName='value'] ">
								<xsl:value-of select="TXB/p"/>
								<xsl:value-of select="TXT"/>
								<xsl:value-of select="STR"/>
								<xsl:value-of select="NUM/p"/>
								<xsl:value-of select="GRP/p"/>
								<br/>
							</xsl:for-each> 
						</td>
						
						 </xsl:if>
						
						
		</tr>	
				 </xsl:for-each>	
                          </xsl:for-each>
Ich habe in dem XSL Beispiel versucht die Tabellenwerte für B und D zu füllen! Das ist auch das größte Problem!

Ich finde einfach keinen vernünftigen Ansatz für das Problem, habe es mit for each group versucht, aber bin da noch zu unerfahren! Ich hoffe ihr könnt mir weiterhelfen!
Vielen Dank schon mal im voraus!



HTML:
   <FE tagName="approvals" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
			<STR/>
			<FE tagName="approval" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
				<LayoutAttribute name="type" value="non_ex"/>
				<STR/>
				
				<FE tagName="usegroup" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
					<LayoutAttribute name="type" value="B"/>
					<STR/>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="TXB-41604" refColIDs="41604" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>Nennspannung U<sub>N</sub>
								</p>
							</TXB>
						</FE>
						<FE refColIDs="170" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<GRP>
								<p>300 V</p>
							</GRP>
						</FE>
					</FE>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="TXB-41610" refColIDs="41610" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>Nennstrom I<sub>N</sub>
								</p>
							</TXB>
						</FE>
						<FE refColIDs="310" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<GRP>
								<p>10 A</p>
							</GRP>
						</FE>
					</FE>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="6525019" refColIDs="6525019" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>mm²/AWG/kcmil</p>
							</TXB>
						</FE>
						<FE externalID="421923" refColIDs="421923" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<TXT>24-14</TXT>
						</FE>
					</FE>
					<FE tagName="note" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
						<TXB/>
					</FE>
				</FE>
				<FE tagName="usegroup" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
					<LayoutAttribute name="type" value="D"/>
					<STR/>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="TXB-41604" refColIDs="41604" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>Nennspannung U<sub>N</sub>
								</p>
							</TXB>
						</FE>
						<FE refColIDs="170" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<GRP>
								<p>300 V</p>
							</GRP>
						</FE>
					</FE>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="TXB-41610" refColIDs="41610" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>Nennstrom I<sub>N</sub>
								</p>
							</TXB>
						</FE>
						<FE refColIDs="310" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<GRP>
								<p>5 A</p>
							</GRP>
						</FE>
					</FE>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="6525019" refColIDs="6525019" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>mm²/AWG/kcmil</p>
							</TXB>
						</FE>
						<FE externalID="421923" refColIDs="421923" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<TXT>24-14</TXT>
						</FE>
					</FE>
					<FE tagName="note" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
						<TXB/>
					</FE>
				</FE>
			</FE>
			<FE tagName="approval" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
				<LayoutAttribute name="type" value="non_ex"/>
				<STR/>
				<FE tagName="usegroup" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
					<LayoutAttribute name="type" value=""/>
					<STR/>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="TXB-41604" refColIDs="41604" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>Nennspannung U<sub>N</sub>
								</p>
							</TXB>
						</FE>
						<FE refColIDs="170" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<GRP>
								<p>250 V</p>
							</GRP>
						</FE>
					</FE>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="TXB-41610" refColIDs="41610" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>Nennstrom I<sub>N</sub>
								</p>
							</TXB>
						</FE>
						<FE refColIDs="310" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<GRP>
								<p>22 A</p>
							</GRP>
						</FE>
					</FE>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="6525019" refColIDs="6525019" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>mm²/AWG/kcmil</p>
							</TXB>
						</FE>
						<FE externalID="6385684" refColIDs="6385684" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<TXT>0.2-2.5</TXT>
						</FE>
					</FE>
					<FE tagName="note" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
						<TXB/>
					</FE>
				</FE>
			</FE>
		</FE>
Gruß
Peter
 
Zuletzt bearbeitet:

deepthroat

Erfahrenes Mitglied
#2
Hi.

Du beginnst in deinem Stylesheet für jedes Attribut in einer Usegroup eine neue Tabellenzeile. Das willst du doch gar nicht.

Du hast jetzt keine Erklärung zum XML Quelldokument gegeben. Vermutlich könnte man aber über die refColIDs gruppieren?

XML:
<xsl:for-each-group select="FE[@tagName='attribute']" group-by="FE[@tagName='value']/@refColIDs">
  ...
</xsl:for-each-group>
Gruß
 
Zuletzt bearbeitet von einem Moderator:

princ84

Grünschnabel
#3
Hi,
danke erstmal für deinen tipp! Ich habe jetzt die Tabelle soweite aufgebaut, siehe Tabelle (die zweite Spalte sind die REFColIDs) :
[table]
[tr]
[td]Nennspannung UN[/td]
[td]41604[/td]
[td]300[/td]
[td]300[/td]
[td]250[/td]
[td]300[/td]
[td]300[/td]
[td]250[/td]
[td]250[/td]
[/tr]
[tr]
[td]Nennstrom[/td]
[td]41610[/td]
[td]10[/td]
[td]5[/td]
[td]22[/td]
[td]10[/td]
[td]5[/td]
[td]22[/td]
[td]22[/td]
[/tr]
[tr]
[td]mm²/AWG/kcmil[/td]
[td]6525019[/td]
[td]24-14[/td]
[td]24-14[/td]
[td]0.2-2.5[/td]
[td]24-14[/td]
[td]24-14[/td]
[td]0.2-2.5[/td]
[td]0.2-2.5[/td]
[/tr]
[/table]

Die XSL Datei:
HTML:
<table border="1">
					<xsl:for-each-group select="SEPreview/SE[@tagName='Product']/FE[@tagName='approvals']/FE[@tagName='approval']/FE[@tagName='usegroup']/FE[@tagName='attribute']" group-by="FE[@tagName='label']/@refColIDs">
						<group>
							<tr>
								<td>
									<xsl:for-each select="FE[@tagName='label'] /TXB  ">
										<xsl:value-of select="p"/>
										<br/>
									</xsl:for-each>
								</td>
								<th>
									<key>
										<xsl:value-of select="current-grouping-key()"/>
									</key>
								</th>
								<xsl:for-each select="current-group()">
									<td>
										<xsl:value-of select="FE[@tagName='value']/GRP/p"/>
										<xsl:value-of select="FE[@tagName='value']/TXB/p"/>
										<xsl:value-of select="FE[@tagName='value']/TXT"/>
										<xsl:value-of select="FE[@tagName='value']/STR"/>
										<xsl:value-of select="FE[@tagName='value']/NUM/p"/>
									</td>
								</xsl:for-each>
							</tr>
						</group>
					</xsl:for-each-group>
				</table>
Die Tabelle gibt mir jetzt für die REFColIDs alle werte aus,
das Problem ist jetzt das jeweils immer eine einzeige Tabelle erstellt wird, für das ganze approvals Root Element! Wie kann ich für jedes approvalls/approval Element jeweils eine einzige Tabelle erstellen?

die Tabellen bzw. Listen sollten folgendermaßen aussehen:

[table]
[tr]
[th]usegroup[/th]
[th]B[/th]
[th]D[/th]
[/tr]
[tr]
[td]Nennspannung[/td]
[td]300[/td]
[td]300[/td]
[/tr]
[tr]
[td]Nennstrom[/td]
[td]10 [/td]
[td]5[/td]
[/tr]
[tr]
[td]AWGl[/td]
[td]24-14[/td]
[td]24-14[/td]
[/tr]
[/table]

[table]
[tr]
[th]usegroup[/th]
[th]B[/th]
[th]D[/th]
[/tr]
[tr]
[td]Nennspannung[/td]
[td]300[/td]
[td]300[/td]
[/tr]
[tr]
[td]Nennstrom[/td]
[td]20 [/td]
[td]10[/td]
[/tr]
[tr]
[td]AWGl[/td]
[td]24-10[/td]
[td]24-13[/td]
[/tr]
[/table]

[table]
[tr]
[th][/th]
[th][/th]

[/tr]
[tr]
[td]Nennspannung[/td]
[td]300[/td]

[/tr]
[tr]
[td]Nennstrom[/td]
[td]10 [/td]

[/tr]
[tr]
[td]AWGl[/td]
[td]24-14[/td]

[/tr]
[/table]
Ich hoffe ihr versteht mein Problem!

@deepthroat: Welche Informationen benötigst du den zum XML Quelldokument?
 
Zuletzt bearbeitet:

deepthroat

Erfahrenes Mitglied
#4
Hi.
Die Tabelle gibt mir jetzt für die REFColIDs alle werte aus,
das Problem ist jetzt das jeweils immer eine einzeige Tabelle erstellt wird, für das ganze approvals Root Element! Wie kann ich für jedes approvalls/approval Element jeweils eine einzige Tabelle erstellen?
Die Lösung ist eigentlich so offensichtlich und simpel, da kommst du bestimmt selbst drauf.
@deepthroat: Welche Informationen benötigst du den zum XML Quelldokument?
Du hast zwar eine schöne Tagsuppe präsentiert, aber kein Wort dazu verloren was das eigentlich alles bedeuten soll. Deswegen kann ich nur raten. Ein Schema wäre hilfreich gewesen. Oder zumindest eine Beschreibung wie die Daten grundsätzlich zusammenhängen, ob bestimmte Attribute tatsächlich IDs sind usw.

Gruß
 

princ84

Grünschnabel
#5
Hi,
ich habs mir schon gedacht das die Lösung simpel ist! Nur komm ich leider nicht drauf! Hab einfach zu wenig erfahrung! Wäre nett wenn du mir noch einen Tipp geben könntest!

Wie du schon erkannt hasst sind RefColID auch IDs! falls du z.B. ein DTD Shema meinst, dass gibt es nicht für dieses XML Dokument! Das XML Dokument wird über ein XSL Stylesheet erstellt. Die Informationen kommen von einer Datenbank. Das Sheet erstellt aus einem Datenstrom der Datenbank das XML Dokument.
Aufjedenfalls kann und darf ich "tagTypeName="[ID:5663525]" nicht zur gruppierung nutzen!
Ich hoffe das hilft dir weiter zum verständnis.
An sich hab ich nur das XML Dokument und muss daraus eine HTML-Ansicht basteln!

Ich habe dir nur einen teil des Dokument gezeigt, dachte es reicht zum verständnis?!

Hi,
ich glaub es hat sich erledigt!! habs mit der last() funktion gelöst!
Denke dass müsste soweit passen!

Danke für deine Tipps :)
 
#6
Hallo,
ich muss wieder auf euch zurückkommen. Hat sich herausgestellt, dass ich kein xslt 2.0 verwenden kann und mit xslt 1.0 vorlieb nehmen muss. Deswegen kann ich meinen vorherigen Ansatz erstmal verwerfen.
Ich versuche momentan die Muench'schen Methode zu verwenden, jedoch gelingt es mir nicht die werte für die einzelnen Tabellen auszugeben. Der Inhalte wir immer nur für die erste tabelle gefüllt. Bei dem nächten durchlauf der Schleife, wird in die Gruppier Funktion gar nicht hineingegangen, das heisst die Grupierfunktion wird nur einmalig aufgerufen!


Meine Tabellen sollten folgendermaßen aussehen:
[table]
[tr]
[th]usegroup[/th]
[th]B[/th]
[th]D[/th]
[/tr]
[tr]
[td]Nennspannung[/td]
[td]300[/td]
[td]300[/td]
[/tr]
[tr]
[td]Nennstrom[/td]
[td]10 [/td]
[td]5[/td]
[/tr]
[tr]
[td]AWGl[/td]
[td]24-14[/td]
[td]24-14[/td]
[/tr]
[/table]

[table]
[tr]
[th]usegroup[/th]
[th]B[/th]
[th]D[/th]
[/tr]
[tr]
[td]Nennspannung[/td]
[td]300[/td]
[td]300[/td]
[/tr]
[tr]
[td]Nennstrom[/td]
[td]20 [/td]
[td]10[/td]
[/tr]
[tr]
[td]AWGl[/td]
[td]24-10[/td]
[td]24-13[/td]
[/tr]
[/table]

[table]
[tr]
[th][/th]
[th][/th]

[/tr]
[tr]
[td]Nennspannung[/td]
[td]300[/td]

[/tr]
[tr]
[td]Nennstrom[/td]
[td]10 [/td]

[/tr]
[tr]
[td]AWGl[/td]
[td]24-14[/td]

[/tr]
[/table]


Meine momentane XSLT:

HTML:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
	<xsl:output method="html"/>
	<xsl:key name="usegroup_key" match="FE[@tagName='usegroup']/FE[@tagName='attribute']" use="FE[@tagName='label']/@refColIDs"/>
	<xsl:template match="/">
		<html>
			<head>
				<title>Test Gruppierung approvals</title>
			</head>
			<body>
				<xsl:for-each select="SEPreview/SE[@tagName='Product']/FE[@tagName='approvals']/FE[@tagName='approval']">
					<table border="1">
						<xsl:for-each select="FE[@tagName='usegroup']/FE[@tagName='attribute'][generate-id(.)=generate-id(key('usegroup_key',FE[@tagName='label']/@refColIDs)[1])]">
							<!--<xsl:sort select="FE[@tagName='label']/@refColIDs" data-type="number" order="ascending"/>-->
							<tr>
								<td>
									<xsl:variable name="position" select="position()"/>
									<strong>durchlauf der <xsl:value-of select="$position"/> Schleife</strong>
									<xsl:for-each select="FE[@tagName='label'] /TXB  ">
										<xsl:value-of select="p"/>
									</xsl:for-each>
								</td>
								<xsl:for-each select="key('usegroup_key', FE[@tagName='label']/@refColIDs)">
									<!--<xsl:attribute name="rowspan"><xsl:value-of select="count(key('usegroup_key',FE[@tagName='label']/@refColIDs))"/></xsl:attribute>-->
									<xsl:if test="(position() = 1)  ">
										<td>
											<xsl:variable name="key" select="key('usegroup_key', FE[@tagName='label']/@refColIDs)"/>
											<strong>			Schlüssel:<xsl:value-of select="$key"/>
											</strong>
											<br/>
											<xsl:variable name="position2" select="position()"/>
																				durchlauf der <xsl:value-of select="$position2"/> Gruppe
																					<!--<xsl:value-of select="FE[@tagName='label']/@refColIDs"/>-->
											<xsl:value-of select="FE[@tagName='value']/GRP/p"/>
											<xsl:value-of select="FE[@tagName='value']/TXB/p"/>
											<xsl:value-of select="FE[@tagName='value']/TXT"/>
											<xsl:value-of select="FE[@tagName='value']/STR"/>
											<xsl:value-of select="FE[@tagName='value']/NUM/p"/>
										</td>
									</xsl:if>
								</xsl:for-each>
							</tr>
						</xsl:for-each>
					</table>
				</xsl:for-each>
			</body>
		</html>
	</xsl:template>
</xsl:stylesheet>

Meine tabelle sieht nach der oberen xsl folgendermaßen aus:
[table]

[tr]
[td]Nennspannung[/td]
[td]300[/td]

[/tr]
[tr]
[td]Nennstrom[/td]
[td]10 [/td]

[/tr]
[tr]
[td]AWGl[/td]
[td]24-14[/td]

[/tr]
[/table]


Der HTML Code sieht folgendermaßen aus:
HTML:
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>Test Gruppierung approvals</title>
	</head>
	<body>
		<table border="1">
			<tr>
				<td><strong>durchlauf der 1 Schleife</strong>Nennspannung UN</td>
				<td><strong>			Schlüssel:Nennspannung UN300 V</strong><br>
																				durchlauf der 1 Gruppe
																					300 V</td>
			</tr>
			<tr>
				<td><strong>durchlauf der 2 Schleife</strong>Nennstrom IN</td>
				<td><strong>			Schlüssel:Nennstrom IN10 A</strong><br>
																				durchlauf der 1 Gruppe
																					10 A</td>
			</tr>
			<tr>
				<td><strong>durchlauf der 3 Schleife</strong>mm²/AWG/kcmil</td>
				<td><strong>			Schlüssel:mm²/AWG/kcmil24-14</strong><br>
																				durchlauf der 1 Gruppe
																					24-14</td>
			</tr>
		</table>
		<table border="1"></table>
		<table border="1"></table>
		<table border="1"></table>
		<table border="1"></table>
		<table border="1"></table>
		<table border="1"></table>
	</body>
</html>
Wie man sieht müssen 7 unterschiedliche Tabellen erstellt werden, es wird aber nichts hinzugefügt!

Hier nochmal mein XML:
HTML:
<FE tagName="approvals" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
			<STR/>
			<FE tagName="approval" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
				<LayoutAttribute name="type" value="non_ex"/>
				<STR/>
				
				<FE tagName="usegroup" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
					<LayoutAttribute name="type" value="B"/>
					<STR/>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="TXB-41604" refColIDs="41604" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>Nennspannung U<sub>N</sub>
								</p>
							</TXB>
						</FE>
						<FE refColIDs="170" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<GRP>
								<p>300 V</p>
							</GRP>
						</FE>
					</FE>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="TXB-41610" refColIDs="41610" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>Nennstrom I<sub>N</sub>
								</p>
							</TXB>
						</FE>
						<FE refColIDs="310" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<GRP>
								<p>10 A</p>
							</GRP>
						</FE>
					</FE>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="6525019" refColIDs="6525019" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>mm²/AWG/kcmil</p>
							</TXB>
						</FE>
						<FE externalID="421923" refColIDs="421923" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<TXT>24-14</TXT>
						</FE>
					</FE>
					<FE tagName="note" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
						<TXB/>
					</FE>
				</FE>
				<FE tagName="usegroup" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
					<LayoutAttribute name="type" value="D"/>
					<STR/>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="TXB-41604" refColIDs="41604" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>Nennspannung U<sub>N</sub>
								</p>
							</TXB>
						</FE>
						<FE refColIDs="170" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<GRP>
								<p>300 V</p>
							</GRP>
						</FE>
					</FE>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="TXB-41610" refColIDs="41610" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>Nennstrom I<sub>N</sub>
								</p>
							</TXB>
						</FE>
						<FE refColIDs="310" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<GRP>
								<p>5 A</p>
							</GRP>
						</FE>
					</FE>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="6525019" refColIDs="6525019" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>mm²/AWG/kcmil</p>
							</TXB>
						</FE>
						<FE externalID="421923" refColIDs="421923" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<TXT>24-14</TXT>
						</FE>
					</FE>
					<FE tagName="note" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
						<TXB/>
					</FE>
				</FE>
			</FE>
			<FE tagName="approval" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
                         <FE tagName="usegroup" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
					<LayoutAttribute name="type" value=""/>
					<STR/>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="TXB-41604" refColIDs="41604" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>Nennspannung U<sub>N</sub>
								</p>
							</TXB>
						</FE>
						<FE refColIDs="170" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<GRP>
								<p>250 V</p>
							</GRP>
						</FE>
					</FE>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="TXB-41610" refColIDs="41610" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>Nennstrom I<sub>N</sub>
								</p>
							</TXB>
						</FE>
						<FE refColIDs="310" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<GRP>
								<p>22 A</p>
							</GRP>
						</FE>
					</FE>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="6525019" refColIDs="6525019" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>mm²/AWG/kcmil</p>
							</TXB>
						</FE>
						<FE externalID="6385684" refColIDs="6385684" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<TXT>0.2-2.5</TXT>
						</FE>
					</FE>
					<FE tagName="note" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
						<TXB/>
					</FE>
				</FE>
			</FE>
Ich frage mich wieso bei meiner gruppierung das Elemtent <FE tagName="approval" kommplett durchgelaufen wir und nicht zuerst das erste anschliessend das zweite und soweiter!? Irgendwie steig ich da nicht durch!

Wenn ich in meine xsl so erweitere <xsl:if test="(position() = 1) or (position() = 2)"> wird der werte für die Spalte B ausgegeben. Und wenn ich die If-Anweisung komplett entferne, werden alle werte in der ersten Tabelle ausgegeben. Wieso wird die schleife nur einmal durchlaufen?

Hat einer da, eine Ide wieso mein ansatz nicht funktioniert. Ich habe die XSLT1.0 Gruppier Funktion genau so aufgebaut, wie die vorherige in XSLT 2.0?


Brauche dringend hilfe, versuche hier schon seit 2 tagen das hinzubekommen!
 
Zuletzt bearbeitet:

deepthroat

Erfahrenes Mitglied
#8
Hi.

Ich verstehe immer noch nicht ganz wie da überhaupt gruppiert werden soll.

Einige Dinge machen es aber auch ziemlich schwierig dir zu helfen.

1. die Daten passen nicht zu deinem Beispiel. Wo sollen denn die 20 A Werte aus der zweiten Tabelle herkommen? Dazu gibt es keinen Eintrag im XML

2. das XML ist unvollständig und kann mit dem angegebenen Stylesheet nicht verarbeitet werden. Erstelle immer vollständige Minimalbeispiele - das erhöht die Chance das sich jemand das anschaut ungemein.

3. der Zusammenhang / die Erklärung fehlt fast vollständig. Was ist die usegroup? Wie hängen diese zusammen? Wozu ist das LayoutAttribute/@value gut?

Gruß
 
#9
Hi,

das waren nur beispiel auszüge aus der xml!

hier ist eine XML und eine XSL, die mit originaldaten funktionieren:

XML:
HTML:
<?xml version="1.0" encoding="UTF-8"?>

<SEPreview pvID="12304">
	<SE seID="852860152" tagName="Product" tagTypeIcon="tt4174.gif" tagTypeName="[ID:5639851]">
		
			
		<FE tagName="approvals" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
			<STR/>
			<FE tagName="approval" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
				<LayoutAttribute name="type" value="non_ex"/>
				
				<FE tagName="usegroup" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
					<LayoutAttribute name="type" value="B"/>
					<STR/>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="TXB-41604" refColIDs="41604" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>Nennspannung U<sub>N</sub>
								</p>
							</TXB>
						</FE>
						<FE refColIDs="170" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<GRP>
								<p>300 V</p>
							</GRP>
						</FE>
					</FE>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="TXB-41610" refColIDs="41610" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>Nennstrom I<sub>N</sub>
								</p>
							</TXB>
						</FE>
						<FE refColIDs="310" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<GRP>
								<p>10 A</p>
							</GRP>
						</FE>
					</FE>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="6525019" refColIDs="6525019" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>mm²/AWG/kcmil</p>
							</TXB>
						</FE>
						<FE externalID="421923" refColIDs="421923" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<TXT>24-14</TXT>
						</FE>
					</FE>
					<FE tagName="note" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
						<TXB/>
					</FE>
				</FE>
				<FE tagName="usegroup" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
					<LayoutAttribute name="type" value="D"/>
					<STR/>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="TXB-41604" refColIDs="41604" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>Nennspannung U<sub>N</sub>
								</p>
							</TXB>
						</FE>
						<FE refColIDs="170" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<GRP>
								<p>300 V</p>
							</GRP>
						</FE>
					</FE>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="TXB-41610" refColIDs="41610" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>Nennstrom I<sub>N</sub>
								</p>
							</TXB>
						</FE>
						<FE refColIDs="310" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<GRP>
								<p>5 A</p>
							</GRP>
						</FE>
					</FE>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="6525019" refColIDs="6525019" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>mm²/AWG/kcmil</p>
							</TXB>
						</FE>
						<FE externalID="421923" refColIDs="421923" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<TXT>24-14</TXT>
						</FE>
					</FE>
					<FE tagName="note" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
						<TXB/>
					</FE>
				</FE>
			</FE>
			<FE tagName="approval" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
				<LayoutAttribute name="type" value="non_ex"/>
				
				<FE tagName="usegroup" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
					<LayoutAttribute name="type" value=""/>
					<STR/>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="TXB-41604" refColIDs="41604" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>Nennspannung U<sub>N</sub>
								</p>
							</TXB>
						</FE>
						<FE refColIDs="170" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<GRP>
								<p>250 V</p>
							</GRP>
						</FE>
					</FE>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="TXB-41610" refColIDs="41610" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>Nennstrom I<sub>N</sub>
								</p>
							</TXB>
						</FE>
						<FE refColIDs="310" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<GRP>
								<p>22 A</p>
							</GRP>
						</FE>
					</FE>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="6525019" refColIDs="6525019" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>mm²/AWG/kcmil</p>
							</TXB>
						</FE>
						<FE externalID="6385684" refColIDs="6385684" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<TXT>0.2-2.5</TXT>
						</FE>
					</FE>
					<FE tagName="note" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
						<TXB/>
					</FE>
				</FE>
			</FE>
			<FE tagName="approval" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
				<LayoutAttribute name="type" value="non_ex"/>
				
				<FE tagName="usegroup" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
					<LayoutAttribute name="type" value="B"/>
					<STR/>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="TXB-41604" refColIDs="41604" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>Nennspannung U<sub>N</sub>
								</p>
							</TXB>
						</FE>
						<FE refColIDs="170" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<GRP>
								<p>300 V</p>
							</GRP>
						</FE>
					</FE>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="TXB-41610" refColIDs="41610" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>Nennstrom I<sub>N</sub>
								</p>
							</TXB>
						</FE>
						<FE refColIDs="310" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<GRP>
								<p>10 A</p>
							</GRP>
						</FE>
					</FE>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="6525019" refColIDs="6525019" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>mm²/AWG/kcmil</p>
							</TXB>
						</FE>
						<FE externalID="421923" refColIDs="421923" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<TXT>24-14</TXT>
						</FE>
					</FE>
					<FE tagName="note" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
						<TXB/>
					</FE>
				</FE>
				<FE tagName="usegroup" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
					<LayoutAttribute name="type" value="D"/>
					<STR/>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="TXB-41604" refColIDs="41604" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>Nennspannung U<sub>N</sub>
								</p>
							</TXB>
						</FE>
						<FE refColIDs="170" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<GRP>
								<p>300 V</p>
							</GRP>
						</FE>
					</FE>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="TXB-41610" refColIDs="41610" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>Nennstrom I<sub>N</sub>
								</p>
							</TXB>
						</FE>
						<FE refColIDs="310" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<GRP>
								<p>5 A</p>
							</GRP>
						</FE>
					</FE>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="6525019" refColIDs="6525019" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>mm²/AWG/kcmil</p>
							</TXB>
						</FE>
						<FE externalID="421923" refColIDs="421923" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<TXT>24-14</TXT>
						</FE>
					</FE>
					<FE tagName="note" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
						<TXB/>
					</FE>
				</FE>
			</FE>
			<FE tagName="approval" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
				<LayoutAttribute name="type" value="non_ex"/>
				
				<FE tagName="usegroup" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
					<LayoutAttribute name="type" value=""/>
					<STR/>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="TXB-41604" refColIDs="41604" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>Nennspannung U<sub>N</sub>
								</p>
							</TXB>
						</FE>
						<FE refColIDs="170" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<GRP>
								<p>250 V</p>
							</GRP>
						</FE>
					</FE>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="TXB-41610" refColIDs="41610" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>Nennstrom I<sub>N</sub>
								</p>
							</TXB>
						</FE>
						<FE refColIDs="310" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<GRP>
								<p>22 A</p>
							</GRP>
						</FE>
					</FE>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="6525019" refColIDs="6525019" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>mm²/AWG/kcmil</p>
							</TXB>
						</FE>
						<FE externalID="6385684" refColIDs="6385684" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<TXT>0.2-2.5</TXT>
						</FE>
					</FE>
					<FE tagName="note" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
						<TXB/>
					</FE>
				</FE>
			</FE>
			<FE tagName="approval" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
				<LayoutAttribute name="type" value="non_ex"/>
				
				<FE tagName="usegroup" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
					<LayoutAttribute name="type" value=""/>
					<STR/>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="TXB-41604" refColIDs="41604" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>Nennspannung U<sub>N</sub>
								</p>
							</TXB>
						</FE>
						<FE refColIDs="170" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<GRP>
								<p>250 V</p>
							</GRP>
						</FE>
					</FE>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="TXB-41610" refColIDs="41610" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>Nennstrom I<sub>N</sub>
								</p>
							</TXB>
						</FE>
						<FE refColIDs="310" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<GRP>
								<p>22 A</p>
							</GRP>
						</FE>
					</FE>
					<FE tagName="attribute" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
						<STR/>
						<FE externalID="6525019" refColIDs="6525019" tagName="label" tagTypeIcon="tt4276.gif" tagTypeName="[ID:5663528]">
							<TXB>
								<p>mm²/AWG/kcmil</p>
							</TXB>
						</FE>
						<FE externalID="6385684" refColIDs="6385684" tagName="value" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
							<TXT>0.2-2.5</TXT>
						</FE>
					</FE>
					<FE tagName="note" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
						<TXB/>
					</FE>
				</FE>
			</FE>
			
			<FE tagName="approval" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
				<LayoutAttribute name="type" value="non_ex"/>
				<STR/>
				<FE externalID="5903021" refColIDs="5903021" tagName="approval_name" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
					<TXB>
						<p>cULus Recognized</p>
					</TXB>
				</FE>
				<FE tagName="image" tagTypeIcon="tt4273.gif" tagTypeName="[ID:5663525]">
					<STR/>
					<FE externalID="10610" refColIDs="929189" tagName="small" tagTypeIcon="tt4272.gif" tagTypeName="[ID:5663524]">
						<PIC thumbFileName="culus_kom_00.jpg">culus_kom_00</PIC>
					</FE>
					<FE externalID="10610" refColIDs="929189" tagName="large" tagTypeIcon="tt4272.gif" tagTypeName="[ID:5663524]">
						<PIC thumbFileName="culus_kom_04.jpg">culus_kom_04</PIC>
					</FE>
				</FE>
				<FE externalID="5902932" refColIDs="5902932" tagName="certification_center" tagTypeIcon="tt4275.gif" tagTypeName="[ID:5663527]">
					<TXB>
						<p>http://www.ul.com</p>
					</TXB>
				</FE>
			</FE>
		</FE>
		
	</SE>
</SEPreview>

XSL:
HTML:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
	<xsl:output method="html"/>
	<xsl:key name="usegroup_key" match="FE[@tagName='usegroup']/FE[@tagName='attribute']" use="FE[@tagName='label']/@refColIDs"/>
	<xsl:template match="/">
		<html>
			<head>
				<title>Test Gruppierung approvals</title>
			</head>
			<body>
				<xsl:for-each select="SEPreview/SE[@tagName='Product']/FE[@tagName='approvals']/FE[@tagName='approval']">
					<xsl:variable name="approval" select="position()"/>
					approval durchlauf  <xsl:value-of select="$approval"/>
					<table border="1">
						<xsl:for-each select="FE[@tagName='usegroup']/FE[@tagName='attribute'][generate-id()=generate-id(key('usegroup_key',FE[@tagName='label']/@refColIDs)[1])]">
							<!--<xsl:sort select="FE[@tagName='label']/@refColIDs" data-type="number" order="ascending"/>-->
							<tr>
								<td>
									<strong>
										<xsl:value-of select="FE[@tagName='label']/@refColIDs"/>
									</strong>
									<xsl:for-each select="FE[@tagName='label'] /TXB  ">
										<xsl:value-of select="p"/>
									</xsl:for-each>
								</td>
								<xsl:for-each select="key('usegroup_key', FE[@tagName='label']/@refColIDs)">
									<!--<xsl:attribute name="rowspan"><xsl:value-of select="count(key('usegroup_key',FE[@tagName='label']/@refColIDs))"/></xsl:attribute>-->
									<xsl:if test="(position() = 1)  ">
									<td>
								
										<xsl:variable name="position2" select="position()"/>
												<xsl:value-of select="$position2"/> durchlauf 
																					
										<xsl:value-of select="FE[@tagName='value']/GRP/p"/>
										<xsl:value-of select="FE[@tagName='value']/TXB/p"/>
										<xsl:value-of select="FE[@tagName='value']/TXT"/>
									</td>
									</xsl:if>
								</xsl:for-each>
							</tr>
						</xsl:for-each>
					</table>
				</xsl:for-each>
			</body>
		</html>
	</xsl:template>
</xsl:stylesheet>
Wenn du die jetzt mal die XML mit der XSL transformierst, dann ist das Problem vlt. ersichtlicher!
Ich erhalte folgende Darstellung wenn ich transformiere:
approval.png

Ich möchte für jede approval eine tabelle mit den usegroup Inhalten erstellen.
Eine approval kann eine oder zwei usegroups beinhalten.
Das bedeutet die Tabelle muss entweder 3 oder 2 Spaltig sein. 2 Spaltig bei einer usergroup und 3 spaltig bei 2 usegroups. Die erste Spalte ist immer für FE[@tagName='label'] vorgesehn, also für die Bezeichnung und die anderen jeweils für die Werte.
Die bsp. siehst du aber auch in meinen oberen Posts!!

- Das LayoutAttribute/@value ist einfach nur der bezeichner für die usegroup. Du kannst es als Klassiefizierung sehn. B kann max so un soviel spannung vertragen und D wieder einen anderen Bereich.

Ich hoffe das hilft dir weiter!

Gruß
 
Zuletzt bearbeitet:

deepthroat

Erfahrenes Mitglied
#10
Hi.
Ich möchte für jede approval eine tabelle mit den usegroup Inhalten erstellen.
Eine approval kann eine oder zwei usegroups beinhalten.
Das bedeutet die Tabelle muss entweder 3 oder 2 Spaltig sein. 2 Spaltig bei einer usergroup und 3 spaltig bei 2 usegroups. Die erste Spalte ist immer für FE[@tagName='label'] vorgesehn, also für die Bezeichnung und die anderen jeweils für die Werte.

- Das LayoutAttribute/@value ist einfach nur der bezeichner für die usegroup. Du kannst es als Klassiefizierung sehn. B kann max so un soviel spannung vertragen und D wieder einen anderen Bereich.

Ich hoffe das hilft dir weiter!
Ja, ich denke schon.

Mit diesem Template:
XML:
	<xsl:template match="FE[@tagName='approval']">
	  <xsl:variable name="approval" select="." />

	  <table>
		<thead>
		  <tr>
			<th>usegroup</th>
			<xsl:for-each select="FE[@tagName='usegroup']/LayoutAttribute">
			  <th><xsl:value-of select="@value" /></th>
			</xsl:for-each>
		  </tr>
		</thead>
		<tbody>
		  <xsl:for-each select="FE[@tagName='usegroup'][1]/FE[@tagName='attribute']">
			<tr>
			  <xsl:variable name="colID" select="FE[@tagName='label']/@refColIDs" />

			  <td><xsl:copy-of select="FE[@tagName='label']/TXB/p" /></td>
			  <xsl:for-each select="$approval/FE[@tagName='usegroup']/FE[@tagName='attribute' and FE[@tagName='label']/@refColIDs = $colID]">
				<td><xsl:value-of select="FE[@tagName='value']" /></td>
			  </xsl:for-each>
			</tr>
		  </xsl:for-each>
		</tbody>
	  </table>
	</xsl:template>
und dem XML Dokument aus Beitrag #9 erhalte ich folgende Tabellen:
...

Gruß
 
Zuletzt bearbeitet von einem Moderator:
#11
Hi deepthroat,
vielen vielen Dank für deinen Lösungsvorschlag! Hat auf anhieb funtkioniert!
Könntest du mir vlt. noch erläutern was da genau pasiert, steig da nicht ganz durch!
Danke dir nochnals, hasst mir sehr weiter geholfen!

Gruß und schönes Wochende wünsch ich dir
 

deepthroat

Erfahrenes Mitglied
#12
Könntest du mir vlt. noch erläutern was da genau pasiert, steig da nicht ganz durch!
Erstmal, über die refColIDs zu gruppieren macht bei deinem Fall nicht viel Sinn, da du nur global gruppieren kannst und dann in einer Gruppe alle attribute aus allen approvals hast. (welche du dann wieder trennen müßtest)

Im Grund macht das Template nur das was du gesagt hast: es erstellt eine Tabelle von einem approval.

Dazu wird nur erstmal der Kopf der Tabelle aus dem LayoutAttribute der usegroup Kind-Elemente generiert.

Dann werden alle Attribute des ersten usegroup Kind-Elements verarbeitet um den Tabellenkörper zu erstellen.

Dazu werden einfach alle attribute in einer Schleife verarbeitet, die - ausgehend vom aktuellen approval Element - dieselbe colID haben wie das aktuelle attribute.
Gruß und schönes Wochende wünsch ich dir
Danke, ebenfalls!