RTF se styly

Honza Tosovsky j.tosovsky na tiscali.cz
Sobota Prosinec 11 14:32:43 CET 2004


>Myslím, že jednodušší by bylo místo úpravy stylů napsat nepoměrně
>jednodušší XSLT styl, který upravil standardní HTML výstup, z divů
>udělal ploché <p> a doplnil odpovídající CSS třídy.

Asi ano. Tyto cesty jsem vsak chtel obejit, protoze je mi jazyk xsl cizi.
Nyni postupne  pronikam do jeho taju a dokonce se mi podarilo vytvorit
sablonu, ktera vyse uvedene svede u meho pokusneho xhtml souboru. Jakmile
vsak pouziji xhtml generovany z DB, bud je vysledny soubor prazdny, nebo
cely bez tagu - podle volby vstupniho "filtru". Nemohl by me nekdo trochu
nakopnout, jak spravne nacitat (x)html soubor? A neexistuje nahodou neco
jako debugger, ktery by dovolil sledovat proces generovani?

Omlouvam se za OT:

<?xml version='1.0'?>
<xsl:stylesheet
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'
 xmlns:saxon="http://icl.com/saxon">
<xsl:output method="html"
saxon:character-representation="native" />

<xsl:template match="/">
  <xsl:apply-templates />
</xsl:template>

<xsl:template match="body">
  <html><body>
  <xsl:apply-templates />
  </body></html>
</xsl:template>

<xsl:template match="div">
  <xsl:apply-templates />
</xsl:template>

<xsl:template match="h1">
  <xsl:call-template name="getClasses" />
</xsl:template>

<xsl:template match="h2">
  <xsl:call-template name="getClasses" />
</xsl:template>

<xsl:template match="p">
  <xsl:call-template name="getClasses" />
</xsl:template>

<xsl:template match="span">
  <xsl:copy-of select="." />
</xsl:template>

<xsl:template name="getClasses">
  <xsl:text disable-output-escaping="yes"><p class="</xsl:text>
  <xsl:for-each select="ancestor-or-self::*/attribute::class">
    <xsl:value-of select="." />
    <xsl:if test="not(position()=last())">
      <xsl:text>_</xsl:text>
    </xsl:if>
  </xsl:for-each>
  <xsl:text disable-output-escaping="yes">"></xsl:text>
  <xsl:apply-templates />
  <xsl:text disable-output-escaping="yes"></p></xsl:text>
</xsl:template>

</xsl:stylesheet>



Další informace o konferenci Docbook