[Home] [By Thread] [By Date] [Recent Entries]
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.Honnen@xxxxxx> wrote: There is a closing ')' missing, you need
|

Cart



