Thanks for the tip, Martin.
After adding a comma in the following line to clear up one final
error, I ran the stylesheet again without incident.
(<xsl:copy-of select="@*|key('c',@name)/*"/>
But there is no actual data in my output:
<?xml version="1.0" encoding="UTF-8"?>
<components xmlns:exslt="http://exslt.org/common"/>
My input file (filenames_file.xml) references my three input XML docs:
<files>
<file>file1.xml</file>
<file>file2.xml</file>
<file>file3.xml</file>
</files>
The three input XML docs include data in the components/component nodes:
<components>
<component name="a" description="1">
<childA>Value</childA>
<childB>Value</childB>
</component>
</components>
So, I can't figure out why my output contains no data.
Here is my current stylesheet (thanks to David and Martin):
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exslt="http://exslt.org/common">
<xsl:output indent="yes"/>
<xsl:template match="/">
<xsl:variable name="temp">
<components>
<xsl:copy-of
select="document(/files/file)/components/component"/>
</components>
</xsl:variable>
<components>
<xsl:for-each
select="exslt:node-set($temp)/components/component[generate-id()=generate-id(key('c',@name))]">
<xsl:sort select="@name"/>
(<xsl:copy>
(<xsl:copy-of select="@*|key('c',@name)/*"/>
</xsl:copy>)
</xsl:for-each>
</components>
</xsl:template>
<xsl:key name="c" match="component" use="@name"/>
</xsl:stylesheet>
Does anyone see what is missing?
Thanks,
Mark
On 6/14/07, Martin Honnen <Martin(_dot_)Honnen(_at_)gmx(_dot_)de> wrote:
There is a closing ')' missing, you need
exslt:node-set($temp)/components/component[generate-id()=generate-id(key('c',@name))]
--~------------------------------------------------------------------
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>
--~--