[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: ancestor
Peiyun,
At 02:40 PM 10/18/2004, you wrote: >Has this test returned a value for you? ><xsl:if test="$inlineequation/@id=./@id"><xsl:value-of >select="position()" /></xsl:if> Yes, I got the one I needed. If you can describe exactly the elements whose positions you want in a match pattern, I think the easiest way to get what you want is probably to use xsl:number: <xsl:template match="inlineequation" mode="number"> <xsl:number count="inlineequation[not(ancestor::table)]" level="any"/> <!-- any formatting you want always to appear with your number, can go in this template too --> <xsl:template> <xsl:template match="inlineequation[not(ancestor::table)]"> <xsl:apply-templates select="." mode="number"/> ... do your other stuff ... </xsl:template> This is much simpler than the approach you are currently trying. It might or might not perform better, depending on the processor (xsl:number can sometimes be slow). Other contingencies will affect this: for example, if I were outputting all the equations together, the gathering and counting by position would be more attractive. If, however, I had to reach in and find the correct node to number from my bunch, I'd try this method first. Note also that if you can't use a pattern to distinguish just the nodes you want, you have to use the more complex approach. (We saw that a couple of days ago with numbering tables and figures in order of first reference to them....) Cheers, Wendell
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|