Suppose I am operating on a collection of XML documents returned by
collection("docs.xml"). Further suppose that each document node returned
by collection() contains <p> elements that I want to number sequentially
across the collection in my output. (And assume XSLT 2.0.)
My first stab at this was along these lines:
<xsl:apply-templates select="collection('docs.xml')"/>
... intermediate templates ...
<xsl:template match="p">
<xsl:copy>
<xsl:attribute name="number">
<xsl:number level="any"/>
</xsl:attribute>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
Output is all as desired except that the numbering is reset to 1
at each document node. Is it a built-in limitation of
xsl:number that operates within single document nodes only, or am I
missing some way to accomplish what I want other than putting
the whole collection into a variable like so:
<xsl:variable name="wrapper">
<wrapper>
<xsl:sequence select="collection('docs.xml')"/>
</wrapper>
</xsl:variable>
and then applying templates to $wrapper? (This works fine,
I'm just wondering if it's the optimal solution.)
DS
--
David Sewell, Editorial and Technical Manager
ROTUNDA, The University of Virginia Press
PO Box 801079, Charlottesville, VA 22904-4318 USA
Courier: 310 Old Ivy Way, Suite 302, Charlottesville VA 22903
Email: dsewell(_at_)virginia(_dot_)edu Tel: +1 434 924 9973
Web: http://rotunda.upress.virginia.edu/
--~------------------------------------------------------------------
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>
--~--