xsl-list
[Top] [All Lists]

[xsl] RE: result document flush

2012-07-17 17:49:07
Hi all,

I am running into the same issue as described in this thread: 
http://www.biglist.com/lists/xsl-list/archives/200705/msg00045.html

However I can't use the old school grouping technique unfortunately as the 
elements don't have the same grouping key.

Already tried to work around it naively by using a function that would retrieve 
the key, which didn't seem to work but is that because it just is not allowed 
to use a function call in the group-by or because I made a mistake in my select 
statement.

<xsl:for-each-group
         select="document(concat($sourceFolder, 
@FILENAME))/maximo:*/maximo:*/maximo:*" group-by="znapz:getURI(.)">
    <xsl:apply-templates select="current-group()[1]"/>
</xsl:for-each-group>

Bottom line is,

The other approach described by Abel in the above thread mentions deduplicating 
a list of writeable URI's.  How could I incorporate this in below code?

    <xsl:variable name="uniqueURIs" select="distinct-values(for $element in 
document(concat($sourceFolder, @FILENAME))/maximo:*/maximo:*/maximo:* return 
znapz:getURI($element))"/>

    <xsl:template match="/">
        <xsl:apply-templates select="PACKAGEMANIFEST/PREVIEWINFO/PACKAGEFILE"/>
    </xsl:template>

    <xsl:template match="PACKAGEFILE">
        <xsl:apply-templates  select="document(concat($sourceFolder, 
@FILENAME))/maximo:*/maximo:*/maximo:*"/>
    </xsl:template>

    <xsl:function name="znapz:getURI" as="xs:anyURI">
        <xsl:param name="element" as="element()"/>
        <xsl:apply-templates select="$element" mode="getURI"/>
    </xsl:function>

    <xsl:template match="maximo:*">
     <!-somehow I would need to  use that sequence of uniqueURI's here but I 
can't e.g. remove used ones for checking later on again --?>
        <xsl:result-document method="xml" href="{znapz:getURI(.)}">
            <xsl:element xmlns="http://www.ibm.com/maximo"; 
name="{../../local-name()}">
                <xsl:apply-templates select="../../@*"/>
                <xsl:element name="{../local-name()}">
                    <xsl:copy-of select="."/>
                </xsl:element>
            </xsl:element>
        </xsl:result-document>
    </xsl:template>


Kind regards,
Robby

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