This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Conditional document merge
- From: "Hunsberger, Peter" <Peter dot Hunsberger at stjude dot org>
- To: "'xsl-list at lists dot mulberrytech dot com'" <xsl-list at lists dot mulberrytech dot com>
- Date: Tue, 28 May 2002 15:35:22 -0500
- Subject: RE: [xsl] Conditional document merge
- Reply-to: xsl-list at lists dot mulberrytech dot com
>I think this does the sort order you want:
>
> <xsl:template match="/">
>
> <xsl:variable name="docb" select="document('merge-b.xml')"/>
>
> <xsl:for-each select="root/*">
> <xsl:sort select="boolean($docb//*[name() =
>name(current())])" order="descending"/>
> <xsl:sort select="generate-id($docb//*[name() =
>name(current())])"/>
>
> <xsl:value-of select="name()"/>
>
> </xsl:for-each>
>
> </xsl:template>
>
>Run this over document A.
>
I've come to realize that no sorting technique is going to work because you
can't include the missing nodes in the sort criteria at the point I need
them, you can only make them appear first or last(as the boolean() spec is
going to do). I've got to run against document B and somehow pick up that it
is missing a node from document A.
If I could do something like:
select="$doca/$varname[position()+1]"
to find the node after the one I'm currently working I'd be set since then I
can test to see a node with the same name exists in document B and if not
use the values as needed...
(I'm ok with using any Saxon and/or Xalan specific solutions...)
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list