This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Indenting Blocks in HTML Output
- From: "Michael Kay" <michael dot h dot kay at ntlworld dot com>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Sat, 20 Jul 2002 17:52:54 +0100
- Subject: RE: [xsl] Indenting Blocks in HTML Output
- Reply-to: xsl-list at lists dot mulberrytech dot com
There are two ways to do this. One is to pass the current depth (or the
indentation string) as a parameter when you do the apply-templates. The
other is, when processing each node, use count(ancestor::*) to determine
its depth in the original tree.
Michael Kay
Software AG
home: Michael.H.Kay@ntlworld.com
work: Michael.Kay@softwareag.com
> -----Original Message-----
> From: owner-xsl-list@lists.mulberrytech.com
> [mailto:owner-xsl-list@lists.mulberrytech.com] On Behalf Of
> xml@kinowin.zeddiclan.com
> Sent: 19 July 2002 22:07
> To: xsl-list@lists.mulberrytech.com
> Subject: [xsl] Indenting Blocks in HTML Output
>
>
> Hi,
>
> I have an XML file, one of whose productions can be:
>
> <statement>
> <startblock/>
> <statement_list>...</statement_list>
> <endblock/>
> </statement>
>
>
> This represents statement blocks in a traditional programming
> language, for example:
>
> if (condition)
> {
> statement1;
> statement2;
> ...
> statementN;
> }
>
>
> My XSL file tries to create HTML from my XML file, and I
> would like it to indent statement blocks like these.
>
> I initially tried something like this:
>
> <xsl:template match="statement[ *[1]/self::startblock and
> *[2]/self::statement_list and *[3]/self::endblock ]">
> <xsl:apply-templates select="*[1]"/>
> <xsl:text>    </xsl:text>
> <xsl:apply-templates select="*[2]"/>
> <xsl:apply-templates select="*[3]"/>
> </xsl:template>
>
> But, this of course only indents the first line. Not to be
> discouraged, I tried using <dd>s, <ul>s, and <ol>s instead.
> These do the correct indenting, and look perfect in Internet
> Explorer and Mozilla. However, they put extra lines in when
> using the Java EditorPane class which is what I ultimately
> need to display this in.
>
> I'm wondering if there's a nice way of just doing the  
> thing but making it propogate down throughout the rest of the
> rules? Otherwise if anyone else has an idea on how to solve
> this, that would be great.
>
> Thanks a lot!
>
> Jared
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list