This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: RE: Insert html tag between elements
- From: "Jason Macki" <jmacki at iisd dot ca>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Wed, 10 Jul 2002 14:30:38 -0500
- Subject: RE: [xsl] RE: Insert html tag between elements
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hi Astor,
If I understand what you're trying to do, you want the following:
This template matches the "body" element. For each paragraph element
under "body", it copies the element's contents (including any
subelements), and inserts a <br /> tag in between. The if element was
included to prevent the <br /> tag from showing up after the last
paragraph. If you want a <br /> there, just remove the if element.
<xsl:template match="body">
<xsl:for-each select="paragraph/node()">
<xsl:copy-of select="." />
<xsl:if test="position() != last()">
<br />
</xsl:if>
</xsl:for-each>
</xsl:template>
Then in your main template, call the template that matches "body". Your
main template should always have "/" for the match, because this matches
the root of the XML document.
<xsl:template match="/">
<xsl:apply-templates select="Root/page/body" />
</xsl:template>
- Jason
-----Original Message-----
From: Astor Rivera [mailto:arivera@esri.com]
Sent: Wednesday, July 10, 2002 1:38 PM
To: 'xsl-list@lists.mulberrytech.com'
Subject: [xsl] RE: Insert html tag between elements
Hello,
I'd like to know or get some hints as to how to
insert an html tag in between elements.
<=== XML page ===>
<Root>
<page>
<body>
<paragraph> Sentence goes here.</paragraph>
<paragraph> Sentence goes here.</paragraph>
<body>
</page>
</Root>
<=== XSL page ===>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:transform version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/xhtml">
<xsl:output method="html"/>
<!-- ========== Produce HTML ========== -->
<xsl:template match="pagination ">
<html>
<head>
<title>ESRI Map Book, Volume 17</title>
</head>
<body topmargin="0" marginheight="0"
leftmargin="0" marginwidth="0">
<xsl:apply-templates
select="//body/paragraph"/>
</body>
</html>
</xsl:template>
</xsl:transform>
All I end up getting is all of the paragraphs in one giant block. I
would like to insert a <br /> or a <p> tag in between.
Any assistance would be greatly appreciated.
Thanks,
Astor
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list