|
Subject: Re: [xsl] flat list of contents and for-each-group From: Martin Honnen <Martin.Honnen@xxxxxx> Date: Sun, 23 Aug 2009 15:08:42 +0200 |
However, I posted an ideal scenario and forgot to mention that "Section" does not have to be in the source XML and "Part" is then a direct child of "Chapter", see coding for Chapter III. I have also simplified the mark-up for the desired output and used element with name of the component rather than placing the name of the component into attribute which is more realistic, e.g. <level01 type="chapter">.
I tried to modify your template accordingly, but I failed. I really appreciate you sent me the template it helped me a lot, but it also made me realize that I did not take into consideration some variations in the source XML. Can your template be adjusted in order to addressed this new situation?
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:mf="http://example.com/2009/mf" exclude-result-prefixes="xs mf" version="2.0">
<xsl:output indent="yes"/> <xsl:strip-space elements="*"/>
<xsl:template match="b_part">
<xsl:param name="level" as="xs:integer"/>
<xsl:element name="level{format-number($level, '00')}">
<xsl:attribute name="type" select="'part'"/>
<title><xsl:value-of select="level_name"/></title>
</xsl:element>
</xsl:template><book>
<title>Some Title</title>
<toc>
<p>Table of contents</p>
<level01 type="chapter">
<title>Chapter I: Title of Chapter I</title>
<level02 type="section">
<title>Section 1: Title of section 1</title>
<level03 type="part">
<title>Part 1: Title of Part 1</title>
</level03>
<level03 type="part">
<title>Part 2: Title of Part 2</title>
</level03>
<level03 type="part">
<title>Part n: Title of Part n </title>
</level03>
</level02>
</level01>
<level01 type="chapter">
<title>Chapter II: Title of Chapter II</title>
<level02 type="section">
<title>A) Title of Section A</title>
<level03 type="part">
<title>A/1 Title of Part 1</title>
</level03>
<level03 type="part">
<title>A/n Title of Part n</title>
</level03>
</level02>
<level02 type="section">
<title>B) Title of Section A</title>
<level03 type="part">
<title>B/1 Title of Part 1</title>
</level03>
<level03 type="part">
<title>B/n Title of Part n</title>
</level03>
</level02>
</level01>
<level01 type="chapter">
<title>Chapter III: Title of Chapter III</title>
<level02 type="part">
<title>III/1 Title of Part 1</title>
</level02>
<level02 type="part">
<title>III/2 Title of Part n</title>
</level02>
</level01>
</toc>
</book>Martin Honnen http://msmvps.com/blogs/martin_honnen/
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] flat list of contents and, Stanislav Pejša | Thread | [xsl] Avoiding multiple "apply-temp, Kate Busch-Petersen |
| Re: [xsl] flat list of contents and, Stanislav Pejša | Date | Re: [xsl] Getting the name the inpu, Florent Georges |
| Month |