xsl-list
[Top] [All Lists]

[xsl] Re: Where's a basic "boiler-plate" xslt for <em>, <strong>, etc. in XML -> XHTML?

2007-09-28 14:23:58
Steve - Wonderful! Thanks very much! This is just the sort
of thing that can slip through the cracks; much appreciated.
I went to the #xml channel on irc.freenode.net, and the only
one who answered was having the same problem. I'm going to
post this on my blog with as many searchable terms as I can
think of, as well as a link to the archived thread.

Thanks again!
Bill Powell


+++ Scott Trenda [28/09/07 16:03 -0500]:
Bill - 

XSLT handles HTML output beautifully natively. I'm guessing that you'll
want something like the following: (I'm not sure what all of your
non-HTML tags are, so just take the pattern from the sect1 template:)

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
  <xsl:output method="html"/>

  <!-- This will handle any nodes we don't explicitly define templates
for.
       It copies the source as-is, and xsl:output handles the HTML
format.  -->
  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>

  <!-- sect1 means h1 -->
  <xsl:template match="sect1">
    <h1>
      <xsl:apply-templates select="@*|node()"/>
    </h1>
  </xsl:template>

</xsl:stylesheet>


And that's it. Basically, the XSLT processor knows how to handle the
formatting differences between XML and HTML, so we use <xsl:output
method="html"/> to put it into that mode. The first template is a basic
"copy everything" template, and after that, just set up a series of
templates to intercept nodes that need to be renamed or reformatted.

Simple enough? ~_^

~ Scott


--~------------------------------------------------------------------
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>
--~--