xsl-list
[Top] [All Lists]

[xsl] Merging dita files

2006-09-05 04:29:36
Hi All,

I have to merge .dita file into one output.dita using xslt 2.0.

For the same I have "tecra.ditamap" which consists of attribute href which
have reference the files to be merge in the same sequence....


<topicref collection-type="family" type="chapter">
  <topicref href="2_introduction.dita" type="topic"/>
  <topicref href="3_the-grand-tour.dita" type="topic"/>
  <topicref href="4_getting-started.dita" type="topic"/>
  <topicref href="5_operating-basics.dita" type="topic"/>
  <topicref href="6_keyboard.dita" type="topic"/>
  <topicref href="7_power-and-power-up-modes.dita" type="topic"/>
  <topicref href="8_hw-setup.dita" type="topic"/>
  <topicref href="9_optional-devices.dita" type="topic"/>
  <topicref href="10_troubleshooting.dita" type="topic"/>
  <topicref href="11_disclaimers.dita" type="topic"/>
</topicref>

<topicref collection-type="family" type="appendix">
  <topicref href="12_appendix-A.dita" type="topic"/>
  <topicref href="13_appendix-B.dita" type="topic"/>
  <topicref href="14_appendix-C.dita" type="topic"/>
  <topicref href="15_appendix-D.dita" type="topic"/>
  <topicref href="16_appendix-E.dita" type="topic"/>
  <topicref href="17_appendix-F.dita" type="topic"/>
  <topicref href="18_appendix-G.dita" type="topic"/>
  <topicref href="19_appendix-H.dita" type="topic"/>
  <topicref href="20_appendix-I.dita" type="topic"/>
</topicref>


For the same I have done something like this........

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
xmlns:saxon="http://icl.com/saxon"; extension-element-prefixes="saxon">
        <xsl:output method="xml" version="1.0" encoding="UTF-8"
indent="yes"/>
        <xsl:output method="xml" indent="yes" name="xml"/>
        <xsl:strip-space elements="*"/>
        <xsl:template match="/">
                        <book>
                        <xsl:for-each
select="map/topicref[not(@type='glossary')]">
                                                        <xsl:value-of
select="concat(substring-before(substring-after(@href,'/dita/'),'.'),'')"/>
                                        <xsl:apply-templates
select="document(@href)/dita"/>
                                        <xsl:apply-templates/>
                </xsl:for-each>

                <xsl:for-each
select="map/topicref[(@type='chapter')]/topicref">
                                        <xsl:value-of
select="concat(substring-before(substring-after(@href,'/dita/'),'.'),'')"/>
                                        <xsl:apply-templates
select="document(@href)/dita"/>
                                        <xsl:apply-templates/>
                </xsl:for-each>
                
                <xsl:for-each
select="map/topicref[(@type='appendix')]/topicref">
                                        <xsl:value-of
select="concat(substring-before(substring-after(@href,'/dita/'),'.'),'')"/>
                                        <xsl:apply-templates
select="document(@href)/dita"/>
                                        <xsl:apply-templates/>
                </xsl:for-each>
                
                <xsl:for-each select="map/topicref[(@type='glossary')]">
                                                        <xsl:value-of
select="concat(substring-before(substring-after(@href,'/dita/'),'.'),'')"/>
                                        <xsl:apply-templates
select="document(@href)/dita"/>
                                        <xsl:apply-templates/>
                </xsl:for-each>
                
                                <xsl:for-each
select="map/topicref[(@type='Index')]">
                                                        <xsl:value-of
select="concat(substring-before(substring-after(@href,'/dita/'),'.'),'')"/>
                                        <xsl:apply-templates
select="document(@href)/dita"/>
                                        <xsl:apply-templates/>
                </xsl:for-each>
                
                </book>
        </xsl:template>

        <xsl:template match="dita">
                <xsl:copy-of select="."/>
        </xsl:template>
</xsl:stylesheet>


But I am not getting output for appendix as <dita type="appendix"> instead
of this I am getting <dita type="chapter">

Can you please tell me where it goes wrong.

Thanks,
Shailesh



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

<Prev in Thread] Current Thread [Next in Thread>