xsl-list
[Top] [All Lists]

Re: [xsl] XSLT HTML Formatted output

2007-10-10 02:14:25
Different XSLT processor take a different view of what "indented" means. Some do actual indenting as you expect, some put in newlines but do not add spaces nor tabs for indenting.

Cheers, Tony.

On Wed, 10 Oct 2007 09:42:36 +0100, <adam(_at_)twosmith(_dot_)plus(_dot_)com> 
wrote:

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




--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--




--
Anthony B. Coates
Senior Partner
Miley Watts
Experts In Data
+44 (79) 0543 9026
Data standards participant: ISO 20022 (ISO 15022 XML), ISO 19312, UN/CEFACT TMG, MDDL, FpML, UBL.

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>