Subject: RE: [xsl] XSLT HTML Formatted output From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Wed, 10 Oct 2007 14:10:16 +0100 |
I don't know PHP but your script gives the impression that the stylesheet is writing the result tree to a tree in memory, not serializing it to a stream. The serialization of the tree is being done later, presumably by some PHP code that is quite unaware of what the stylesheet said in its xsl:output. xsl:output properties only take effect when the XSLT processor performs the serialization. Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: adam@xxxxxxxxxxxxxxxxx [mailto:adam@xxxxxxxxxxxxxxxxx] > Sent: 10 October 2007 09:43 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] XSLT HTML Formatted output > > Can anyone tell me why I cant get the output from my XSLT > test to output with the HTML indented? > > I have tried the indent option but the html still comes out > with all the intents stripped out. > > I am a complete newbe with all of this, I am trying to make > the swich from Smarty template engine to XSLT. > > Here is what i am doing. > > Firstly I have a php script that pulls the XML file and XSL > files together: > --- > <?php > > $xsl_filename = "styles.xsl"; > $xml_filename = "data.xml"; > > $doc = new DOMDocument(); > $xsl = new XSLTProcessor(); > > $doc->load($xsl_filename); > $xsl->importStyleSheet($doc); > > $doc->load($xml_filename); > echo $xsl->transformToXML($doc); > > ?> > --- > > This is my XML test data: > --- > <?xml version="1.0" encoding="ISO-8859-1"?> <root> > <title>Welcome to this site</title> > <catalog> > <cd> > <id>1</id> > <title>Empire Burlesque</title> > <artist>Bob Dylan</artist> > <country>USA</country> > <company>Columbia</company> > <price>10.9000</price> > <year>1985</year> > </cd> > <cd> > <id>2</id> > <title>Hide your heart</title> > <artist>Bonnie Tyler</artist> > <country>UK</country> > <company>CBS Records</company> > <price>9.9000</price> > <year>1988</year> > </cd> > <cd> > <id>3</id> > <title>Greatest Hits</title> > <artist>Dolly Parton</artist> > <country>USA</country> > <company>RCA</company> > <price>9.9000</price> > <year>1982</year> > </cd> > <cd> > <id>4</id> > <title>Still got the blues</title> > <artist>Gary Moore</artist> > <country>UK</country> > <company>Virgin records</company> > <price>10.2000</price> > <year>1990</year> > </cd> > <cd> > <id>5</id> > <title>Eros</title> > <artist>Eros Ramazzotti</artist> > <country>EU</country> > <company>BMG</company> > <price>9.9000</price> > <year>1997</year> > </cd> > <cd> > <id>6</id> > <title>One night only</title> > <artist>Bee Gees</artist> > <country>UK</country> > <company>Polydor</company> > <price>10.9000</price> > <year>1998</year> > </cd> > <cd> > <id>7</id> > <title>Sylvias Mother</title> > <artist>Dr.Hook</artist> > <country>UK</country> > <company>CBS</company> > <price>8.1000</price> > <year>1973</year> > </cd> > <cd> > <id>8</id> > <title>Maggie May</title> > <artist>Rod Stewart</artist> > <country>UK</country> > <company>Pickwick</company> > <price>8.5000</price> > <year>1990</year> > </cd> > <cd> > <id>9</id> > <title>Romanza</title> > <artist>Andrea Bocelli</artist> > <country>EU</country> > <company>Polydor</company> > <price>10.8000</price> > <year>1996</year> > </cd> > <cd> > <id>10</id> > <title>When a man loves a woman</title> > <artist>Percy Sledge</artist> > <country>USA</country> > <company>Atlantic</company> > <price>8.7000</price> > <year>1987</year> > </cd> > <cd> > <id>11</id> > <title>Black angel</title> > <artist>Savage Rose</artist> > <country>EU</country> > <company>Mega</company> > <price>10.9000</price> > <year>1995</year> > </cd> > <cd> > <id>12</id> > <title>1999 Grammy Nominees</title> > <artist>Many</artist> > <country>USA</country> > <company>Grammy</company> > <price>10.2000</price> > <year>1999</year> > </cd> > <cd> > <id>13</id> > <title>For the good times</title> > <artist>Kenny Rogers</artist> > <country>UK</country> > <company>Mucik Master</company> > <price>8.7000</price> > <year>1995</year> > </cd> > <cd> > <id>14</id> > <title>Big Willie style</title> > <artist>Will Smith</artist> > <country>USA</country> > <company>Columbia</company> > <price>9.9000</price> > <year>1997</year> > </cd> > <cd> > <id>15</id> > <title>Tupelo Honey</title> > <artist>Van Morrison</artist> > <country>UK</country> > <company>Polydor</company> > <price>8.2000</price> > <year>1971</year> > </cd> > <cd> > <id>16</id> > <title>Soulsville</title> > <artist>Jorn Hoel</artist> > <country>Norway</country> > <company>WEA</company> > <price>7.9000</price> > <year>1996</year> > </cd> > </catalog> > </root> > --- > > This is my XSL data: > --- > <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet > version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > > <xsl:output indent="yes"/> > > <xsl:template match="/root"> > <html> > <head> > <title><xsl:apply-templates > select="title"/></title> > </head> > <body> > <h2>My CD Collection</h2> > <table border="1"> > <tr bgcolor="#9acd32"> > <th>Title</th> > <th>Artist</th> > </tr> > <xsl:for-each select="catalog/cd"> > <xsl:sort select="price" /> > <tr> > <td><xsl:value-of > select="title" > /></td> > <xsl:choose> > <xsl:when test="price > 10"> > <td > bgcolor="#ff00ff"><xsl:value-of select="artist"/></td> > </xsl:when> > <xsl:when test="price > 9"> > <td > bgcolor="#cccccc"><xsl:value-of select="artist"/></td> > </xsl:when> > <xsl:otherwise> > <td><xsl:value-of > select="artist"/></td> > </xsl:otherwise> > </xsl:choose> > </tr> > </xsl:for-each> > </table> > </body> > </html> > </xsl:template> > > <xsl:template match="title">:: <xsl:value-of select="."/> > ::</xsl:template> > > </xsl:stylesheet> > --- > > And this is the source of the result (not indented??): > --- > <html> > <head> > <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> > <title>:: Welcome to this site ::</title> </head> <body> > <h2>My CD Collection</h2> <table border="1"> <tr > bgcolor="#9acd32"> <th>Title</th> <th>Artist</th> </tr> <tr> > <td>Still got the blues</td> <td bgcolor="#ff00ff">Gary > Moore</td> </tr> <tr> > <td>1999 Grammy Nominees</td> > <td bgcolor="#ff00ff">Many</td> > </tr> > <tr> > <td>Romanza</td> > <td bgcolor="#ff00ff">Andrea Bocelli</td> </tr> <tr> > <td>Empire Burlesque</td> <td bgcolor="#ff00ff">Bob > Dylan</td> </tr> <tr> <td>One night only</td> <td > bgcolor="#ff00ff">Bee Gees</td> </tr> <tr> <td>Black > angel</td> <td bgcolor="#ff00ff">Savage Rose</td> </tr> <tr> > <td>Soulsville</td> <td>Jorn Hoel</td> </tr> <tr> <td>Sylvias > Mother</td> <td>Dr.Hook</td> </tr> <tr> <td>Tupelo Honey</td> > <td>Van Morrison</td> </tr> <tr> <td>Maggie May</td> <td>Rod > Stewart</td> </tr> <tr> <td>When a man loves a woman</td> > <td>Percy Sledge</td> </tr> <tr> <td>For the good times</td> > <td>Kenny Rogers</td> </tr> <tr> <td>Hide your heart</td> <td > bgcolor="#cccccc">Bonnie Tyler</td> </tr> <tr> <td>Greatest > Hits</td> <td bgcolor="#cccccc">Dolly Parton</td> </tr> <tr> > <td>Eros</td> <td bgcolor="#cccccc">Eros Ramazzotti</td> > </tr> <tr> <td>Big Willie style</td> <td > bgcolor="#cccccc">Will Smith</td> </tr> </table> </body> </html> > --- > > Can anyone see if i am doing something wrong? > > Cheers, > Adam
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] XSLT HTML Formatted outpu, Anthony B. Coates (X | Thread | RE: [xsl] XSLT HTML Formatted outpu, Scott Trenda |
Re: [xsl] xsl:analyze-string and li, Mathieu Malaterre | Date | RE: [xsl] xsl:analyze-string and li, Michael Kay |
Month |