Re: [xsl] Combining xml file manipulation into one xsl

Subject: Re: [xsl] Combining xml file manipulation into one xsl
From: David Carlisle <davidc@xxxxxxxxx>
Date: Thu, 2 Oct 2003 00:33:16 +0100
wel...

given your (2nd pass) input I think

        <File>
          <Name>
            <xsl:value-of select="./Name"/>
          </Name>
          <Type><xsl:value-of select="./Type"/></Type>
          <BriefDescription><xsl:value-of select="./BriefDescription"/></BriefDescription>
          <SourceFileName><xsl:value-of select="./SourceFileName"/></SourceFileName>
          <IgnoreFlag><xsl:value-of select="./IgnoreFlag"/></IgnoreFlag>
        </File>

can be replaced by
<xsl:copy-of select="."/>

which means that basically you should be able to merge this in to your
first stylesheet. (In general in pure xslt 1 to merge the results of two
stylesheets you need to do what you are doing, produce an intermediate
documemt, but as one of your transforms is just a copy I think you want
something like


<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
<xsl:output method="xml" omit-xml-declaration="yes"/>

<xsl:key name="x" match="File" use="Name"/>

  <xsl:template match="/">
     <CodeLibrary>
    <xsl:apply-templates
select="doxygenindex/compound[not(key('x',@name)]|document('tblMasterFile.xml')/CodeLibrary/File">
       <xsl:sort select="@name|Name"/>
    </xsl:apply-templates>
    </CodeLibrary>
  </xsl:template>

  <xsl:template match="doxygenindex/compound">
    <File>
    <Name><xsl:value-of select="name"/></Name>
    <Type><xsl:value-of select="@kind"/></Type>
    <BriefDescription/>
    <SourceFileName><xsl:value-of select="@refid"/></SourceFileName>
    <IgnoreFlag>77</IgnoreFlag>  
    </File>
  </xsl:template>

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


</xsl:stylesheet>


David

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread