[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] determining position of a document included using document function
Subject: Re: [xsl] determining position of a document included using document function From: "Gennady Loskutov" <g_loskutov@xxxxxxxxxxxxx> Date: Thu, 14 Feb 2002 11:03:09 +0100 |
> is there anyway to find out the position of file in the root document, > without trying to do <xsl:apply-templates> > <xsl:with-param name="filepos" select="position()"/> > </xsl:apply-templates> Bryan, I use generate-id() function to identify the included file. Basically, the idea is to match generated id for the root element of the current node with ones, generated separately and stored in a variable. According to XSLT spec, generate-id(document("foo.xml"))=generate-id(document("foo.xml")) is always true, so I assume that generate-id(document("foo.xml"))=generate-id(document(/files/file/@href)) must be also true if the "foo.xml" file is among those specified in /files/file/@href. To use my solution, you must use an extension function to transform a result tree fragment stored in a variable into a node set (I use Microsoft XML parser, which has node-set() function). For example, using the following XML file <?xml version="1.0" ?> <files> <file href="data1.xml" /> <file href="data2.xml" /> <file href="data3.xml" /> </files> I declare a variable, which is a union of the documents <xsl:variable name="merged" select="document(/files/file/@href)" /> Then I store generated id for each document root in another variable: <xsl:variable name="tops"> <xsl:for-each select="/files/file"> <file> <xsl:copy-of select="@href" /> <xsl:attribute name="id"><xsl:value-of select="generate-id(document(@href))" /></xsl:attribute> </file> </xsl:for-each> </xsl:variable> When I need to know the file URL, I do the following: <xsl:template match="myElement"> ... <xsl:variable name="currentTop" select="generate-id(/)" /> <url> <xsl:value-of select="msxsl:node-set($tops)/file[@id = $currentTop]/@href" /> </url> Regards, Gennady XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] determining position of a, Jeni Tennison | Thread | Re: [xsl] determining position of a, Jeni Tennison |
Re: [xsl] value of xsl:param in xsl, Joerg Pietschmann | Date | RE: [xsl] Many sets of eyes ..., Curtis Burisch |
Month |