Hallo zusammen,
erst einmal großes Lob an dieses Forum. Habt mir schon oft aus der Patsche geholfen. Jedoch hab ich diesmal ein konkretes Problem zu dem ich hier keine Lösung gefunden habe. Dies ist mein erster Beitrag, hoffe ihr könnt mir helfen.
Ausgangssituation:
Folgende XML kann ich erfolgreich in mein gewünschtes Zielformat mittels XSLT umwandeln.
Hier die zugehörige XSLT
Als Resultat bekomme ich folgendes:
Soweit so gut, jedoch haben sich nun die Vorraussetzungen geändert. Jetzt muss ich auch folgende XML nach Datum sortiert schön verteilt ausgeben.
Hier die XML:
Jetzt muss das Resultat folgendermaßen aussehen:
Bin sozusagen noch Anfänger, was XSLT angeht. Bin mir nicht sicher ob sich dieses Problem mittels XSLT überhaupt lösen lässt.
Ich hoffe ihr könnt mir irgendwie weiterhelfen. Bin am verzweifeln.
Vielen Dank jetzt schonmal
erst einmal großes Lob an dieses Forum. Habt mir schon oft aus der Patsche geholfen. Jedoch hab ich diesmal ein konkretes Problem zu dem ich hier keine Lösung gefunden habe. Dies ist mein erster Beitrag, hoffe ihr könnt mir helfen.
Ausgangssituation:
Folgende XML kann ich erfolgreich in mein gewünschtes Zielformat mittels XSLT umwandeln.
Code:
<?xml version="1.0" encoding="UTF.8"?> <roottag> <test name="#1"> <data> <r> <c>2012.01.01 00:15</c> <c>1</c> </r> <r> <c>2012.01.01 00:30</c> <c>2</c> </r> <r> <c>2012.01.01 01:00</c> <c>3</c> </r> <r> <c>2012.01.01 01:15</c> <c>4</c> </r> </data> </test> <test name="#2"> <data> <r> <c>2012.01.01 00:15</c> <c>5</c> </r> <r> <c>2012.01.01 00:30</c> <c>6</c> </r> <r> <c>2012.01.01 01:00</c> <c>7</c> </r> <r> <c>2012.01.01 01:15</c> <c>8</c> </r> </data> </test> <test name="#3"> <data> <r> <c>2012.01.01 00:15</c> <c>9</c> </r> <r> <c>2012.01.01 00:30</c> <c>10</c> </r> <r> <c>2012.01.01 01:00</c> <c>11</c> </r> <r> <c>2012.01.01 01:15</c> <c>12</c> </r> </data> </test> </roottag>
Code:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output omit-xml-declaration="yes"/> <xsl:variable name="vNumRows" select="count(/*/test)"/> <xsl:variable name="vNumCols" select="count(/*/test[1]/data/r)"/> <xsl:template match="roottag"><xsl:text>				</xsl:text><xsl:for-each select="/roottag/test"> <xsl:variable name="vColPos1" select="position()"/><xsl:value-of select="/roottag/test[$vColPos1]/@name"/><xsl:if test="$vColPos1!=$vNumRows" ><xsl:text>	</xsl:text></xsl:if></xsl:for-each> <xsl:text>
</xsl:text> <xsl:for-each select="test[1]/data/r"> <xsl:variable name="vRowPos" select="position()"/> <xsl:for-each select="/roottag/test"> <xsl:variable name="vColPos" select="position()"/> <xsl:if test="$vColPos=1"><xsl:value-of select="/roottag/test[$vColPos]/data/r[$vRowPos]/c[1]"/></xsl:if><xsl:text>	</xsl:text><xsl:value-of select="/roottag/test[$vColPos]/data/r[$vRowPos]/c[2]"/><xsl:if test="$vColPos=$vNumRows" ><xsl:text>
</xsl:text></xsl:if> </xsl:for-each> </xsl:for-each> </xsl:template> </xsl:stylesheet>
Code:
#1 #2 #3 2012.01.01 00:15 1 5 9 2012.01.01 00:30 2 6 10 2012.01.01 01:00 3 7 11 2012.01.01 01:15 4 8 12
Soweit so gut, jedoch haben sich nun die Vorraussetzungen geändert. Jetzt muss ich auch folgende XML nach Datum sortiert schön verteilt ausgeben.
Hier die XML:
Code:
<?xml version="1.0" encoding="UTF.8"?> <roottag> <test name="#1"> <data> <r> <c>2012.01.01 00:15</c> <c>1</c> </r> <r> <c>2012.01.01 00:30</c> <c>2</c> </r> <r> <c>2012.01.01 01:00</c> <c>3</c> </r> <r> <c>2012.01.01 01:15</c> <c>4</c> </r> </data> </test> <test name="#2"> <data> <r> <c>2012.01.01 00:15</c> <c>5</c> </r> <r> <c>2012.01.01 00:30</c> <c>6</c> </r> <r> <c>2012.01.01 00:45</c> <c>7</c> </r> <r> <c>2012.01.01 01:00</c> <c>8</c> </r> <r> <c>2012.01.01 01:15</c> <c>9</c> </r> </data> </test> <test name="#3"> <data> <r> <c>2012.01.01 02:15</c> <c>10</c> </r> <r> <c>2012.01.01 02:30</c> <c>11</c> </r> </data> </test> </roottag>
Jetzt muss das Resultat folgendermaßen aussehen:
Code:
#1 #2 #3 2012.01.01 00:15 1 5 2012.01.01 00:30 2 6 2012.01.01 00:45 7 2012.01.01 01:00 3 8 2012.01.01 01:15 4 9 2012.01.01 02:15 10 2012.01.01 02:30 11
Bin sozusagen noch Anfänger, was XSLT angeht. Bin mir nicht sicher ob sich dieses Problem mittels XSLT überhaupt lösen lässt.
Ich hoffe ihr könnt mir irgendwie weiterhelfen. Bin am verzweifeln.
Vielen Dank jetzt schonmal
Comment