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

Subject: RE: [xsl] Combining xml file manipulation into one xsl
From: "Karen Dunstall" <kdunstall@xxxxxxxxxxxxxxx>
Date: Thu, 2 Oct 2003 10:58:30 +1000
David

This combines the two files beautifully, but it doesn't weed out the duplicates.

I made a couple of minor changes to the apply templates command (which seem reasonable, as the sort works):

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

but I don't know enough keys to really know what I'm doing.  Any suggestions.

Thanks
Karen  

-----Original Message-----
From: David Carlisle [mailto:davidc@xxxxxxxxx]
Sent: Thursday, 2 October 2003 9:33 AM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] Combining xml file manipulation into one xsl



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


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


Current Thread