Kamal Bhatt wrote:
John Steel wrote:
Kamal Bhatt wrote:
Don't make "*|@*" your first match. Make it your last. Instead,
match on faqlist. Not entirely sure what are the extra content is,
so I cannot really judge the right way of doing things. Try this:
<xsl:template match='faqlist'> <xsl:apply-templates
select="*[local-name != 'faq']"/>
<xsl:apply-templates select="faq" mode="question"/>
<xsl:apply-templates select="faq" mode="answer"/> </xsl:template>
<xsl:template match='*|@*'> <xsl:copy>
<xsl:apply-templates select='node()|@*'/>
</xsl:copy>
</xsl:template>
Thanks for your help - its almost there now. What I get is the right
output, just duplicated.
1 Question 1
2 Question 2
...
1 Answer 1
2 Answer 2
...
1 Question 1
2 Question 2
...
1 Answer 1
2 Answer 2
...
This is the full stylesheet I used:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output media-type='text/html'/>
<xsl:template match='faqlist'>
<xsl:apply-templates select="*[local-name != 'faq']"/>
<xsl:apply-templates select="faq" mode="question"/>
<xsl:apply-templates select="faq" mode="answer"/>
</xsl:template>
<xsl:template match='faq' mode="question">
<tr>
<td valign='top' width='24' class="mText" style="font-size: 11px">
<xsl:value-of select="count(preceding-sibling::*) + 1"/>
</td>
<td class="mText" style="font-size: 11px">
<a href='#1'>
<xsl:value-of select='q'/>
</a>
</td>
</tr>
</xsl:template>
<xsl:template match='faq' mode="answer">
<tr>
<td valign='top' width='24' class="mText" style="font-size: 11px">
<xsl:value-of select="count(preceding-sibling::*) + 1"/>
</td>
<td class="mText" style="font-size: 11px">
<a href="#1">
<xsl:value-of select='a'/>
</a>
</td>
</tr>
</xsl:template>
<xsl:template match='*|@*'>
<xsl:copy>
<xsl:apply-templates select='node()|@*'/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Did I make the changes you suggested correctly?
I noticed taking out the line
<xsl:apply-templates select="*[local-name != 'faq']"/>
had no effect.
Sorry, let me be clearer. local-name should be local-name()
Grrr!
No difference. This is how the relevant template looks now. So grateful
for this hlp btw, I really am getting a feel for the power xsl give and
want to use all this in my future projects!
<xsl:template match='faqlist'>
<xsl:apply-templates select="*[local-name() != 'faq']"/>
<xsl:apply-templates select="faq" mode="question"/>
<xsl:apply-templates select="faq" mode="answer"/>
</xsl:template>
--
--------------------------
http://www.phonewebcam.com
john(_dot_)steel(_at_)phonewebcam(_dot_)com
--~------------------------------------------------------------------
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>
--~--