hallo,
ich versuche schon seit geraumer Zeit eine (generierte) xhtml per xslt auf dem server in eine excel spreadsheetml umzuwandeln.
Zu jedem div in der xhtml Source soll ein Worksheet erstellt werden.
Die xhtml Source sieht folgendermaßen aus:
Meine klägliche Versuchs-XSLT sieht folgendermaßen aus...(und tut schon in den Anfängen nicht was sie soll):
Kann mir jemand bitte bei der Erstellung der XSLT helfen?
Als Ergebniss soll eine gültige Excel SpreadsheetML rauskommen, die im wesentlichen jede in divs eingeschlossene Html-Tabelle in entsprechend benannte Sheets abbildet.
Für jegliche Tips und Beispiele bin ich sehr dankbar.
Bye
ich versuche schon seit geraumer Zeit eine (generierte) xhtml per xslt auf dem server in eine excel spreadsheetml umzuwandeln.
Zu jedem div in der xhtml Source soll ein Worksheet erstellt werden.
Die xhtml Source sieht folgendermaßen aus:
Code:
<?xml version="1.0"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de"> <head> <title>Aufbau einer Tabelle</title> </head> <body> <div title="Sheet1"> <table border="1"> <tr> <td>header1</td> <td>header2</td> <td>header1üwithUmlaut</td> </tr> <tr> <td>datacell with Umlautö</td> <td>22</td> <td>33</td> </tr> <tr> <td>datacell row2</td> <td>44</td> <td>55</td> </tr> </table> </div> <div title="Sheet2"> <table border="0"> <tr> <td>header4</td> <td>header5</td> </tr> <tr> <td>datacell</td> <td>55</td> </tr> </table> </div> </body> </html>
Code:
<xsl:stylesheet version="1.0" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="urn:schemas-microsoft-com:office:spreadsheet" exclude-result-prefixes="xhtml xsl xs xml"> <xsl:output method="xml" version="1.0" encoding="UTF-8" doctype-public="-//W3C//DTD XHTML 1.1//EN" doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" indent="no"/> <xsl:template match="/"> <xsl:processing-instruction name="mso-application"> <xsl:text>progid="Excel.Sheet"</xsl:text> </xsl:processing-instruction> <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40"> <WindowHeight>9120</WindowHeight> <WindowWidth>10005</WindowWidth> <WindowTopX>120</WindowTopX> <WindowTopY>135</WindowTopY> <xsl:apply-templates select="@*|node()"/> </Workbook> </xsl:template> <xsl:template match="xhtml:div"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <xsl:template match="@xhtml:title"> <xsl:attribute name="Name"><xsl:value-of select="."/></xsl:attribute> </xsl:template> <xsl:template match="xhtml:div"> <Worksheet> <xsl:apply-templates select="@*|node()"/> </Worksheet> </xsl:template> </xsl:stylesheet>
Als Ergebniss soll eine gültige Excel SpreadsheetML rauskommen, die im wesentlichen jede in divs eingeschlossene Html-Tabelle in entsprechend benannte Sheets abbildet.
Für jegliche Tips und Beispiele bin ich sehr dankbar.
Bye
Comment