Subject: Re: [xsl] modes and temp trees (was Re: [xsl] grouping + global variable (?)) From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx> Date: Tue, 17 Aug 2004 15:26:16 +0100 |
Hi Bruce, > One remaining problem is how to collapse (Doe, 1999a; Doe, 1999c) into > (Doe, 1999a, c). Remindr, in DocBook NG, citations now look like: > > <citation> > <biblioref linkend="one"/> > <biblioref linkend="two"/> > </citation> > > Clearly the problem is something about the if test flagged below. I > would have thought the position in the current group would get me > what I want, but it doesn't. If I remove the [...] on the bibref > variable select statement, however, I can get the collapsing to > work, but I get all of the document citations. The test you've got is: ../mods:mods[position() = 1] This tests if the current node's parent has a <mods:mods> element (whose position is 1 -- this will only and always be true if there's a <mods:mods> element at all, so the test is equivalent to "../mods:mods"). Since the current element is a <mods:mods> element, the test is guaranteed to be true. What you want is simply: <xsl:if test="position() = 1"> ... </xsl:if> This tests whether the current <mods:mods> element is the first within the group of <mods:mods> elements that you're looking at. By the way, you really should be using a key rather than doing: //mods:mods[@ID=$idref] Declare it like: <xsl:key name="mods" match="mods:mods" use="@ID" /> and use it like: <xsl:variable name="bibref" select="key('mods', $idref)" /> Keys are much faster and neater than searching through the entire document using a predicate. If you rather use a predicate, at least limit the search by using an explicit path down to the <mods:mods> elements rather than searching the entire document with //mods:mods. Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] modes and temp trees (was, Bruce D'Arcus | Thread | Re: [xsl] modes and temp trees (was, Bruce D'Arcus |
[xsl] XSLT SLOC counter ..., Jordan, Tom | Date | [xsl] Page Numbering, Dinnyés Álmos |
Month |