Subject: [xsl] How can I know if a node has already been processed ? From: "Frédéric Choubelle" <djidjoenator@xxxxxxxxx> Date: Thu, 6 Nov 2008 19:49:27 +0100 
Hello, I'm working on a (very big) XSL Sheet to translate MathML to Braille (http://natbraille.free.fr/, GPL Software). We have a big technic problem concerning the sin, cos, ln, etc functions because sometimes we need to add braille blocks and this doesn't apply to children. I won't go further into details but I can tell you we searched a lot a lot to find a way to solve the problem. The problem is : in the templatematch where the sin or cos function is identified, the best (and only) way to control what should be between the blocks is to applytemplates of some following::* and followingsibling::* axes, but then these nodes are processed again by the parent. Examples : sin x should be translated sin(x) but is translated sin(x)x sin 2x should be translated sin(2x) but is translated sin(2x)2x ln xy should be translated ln(xy) but is translated ln(xy)xy etc. We tried so hard to determine from the context if the node should be processed, but this leads to so many cases and so many side effects that it can't be the right solution. Here's what we thought of :  have a dynamic list with id's of all already processed nodes  when we process a node in the sin or ln or cos funtion, we add it to this list  every time we process a node, we just check if he's not already in the list to decide if it should be processed or not. This would be great, but we all know that variables don't vary in XSL. I've checked the exslt.org site, there are these nodeset functions that would at least allow to test if the current node is in the alreadyprocessed nodeset but we can't figure a way to dynamically add a node to this nodeset. We also think that Xalan (which we use) might have some useful extensions but we can't find any doc about it (yet). So we're still searching, but any help would be greatly appreciated. Many blind people are looking forward to seeing this problem solved :) Thanks in advance for any reply, Frederic
Current Thread 


< Previous  Index  Next > 

Re: [xsl] Group by Element based on, Michael Ludwig  Thread  Re: [xsl] How can I know if a node , Michael Ludwig 
Re: [xsl] floor() and idiv, Michael Ludwig  Date  [xsl] Cannot have an attribute node, Spencer Tickner 
Month 