Subject: Re: [xsl] RE: Next node name From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx> Date: Wed, 3 Apr 2002 18:44:55 +0100 |
Hi Francisco, > What I do is: when the node has no name, it means we are in a text > node, so there's nothing to do with it unless it's between two nodes > with name (the "ut" nodes), then is when I have to replace. For the > nodes with name (the "ut" nodes) I just do nothing so they are > removed. > > What I need to know is how to reference the next and previous node > names to check if they are "ut" nodes. The easiest way to check that you are on a text node is with: self::text() Or you could apply templates to the child nodes of the seg element in 'seg' mode: <xsl:template match="seg"> <xsl:apply-templates select="node()" mode="seg" /> </xsl:template> and have separate templates for text nodes and elements: <xsl:template match="*" mode="seg" /> <xsl:template match="text()" mode="seg"> ... </xsl:template> To check the immediately preceding node, locate it with the preceding-sibling:: axis: preceding-sibling::node()[1] And test whether it's a ut element with the self:: axis: preceding-sibling::node()[1][self::ut] Similarly, you can test whether the immediately following node is a ut element with: following-sibling::node()[1][self::ut] Having said that, I'm not sure whether this is going to help you do what you need to do. In your example: <tu> <tuv> <seg>Use <ut>{\cs6\f1\cf6\lang1024 </ut><b><ut>}</ut>Set<ut>{\cs6\f1\cf6\lang1024</ut></b><ut>} </ut> when you want to assign an object reference</seg> </tuv> </tu> There are three text nodes that are between ut elements: "<b>" "Set" "</b>" So what you'd actually get would be: <tu> <tuv> <seg>Use (%TERM%)(%TERM%)(%TERM%) when you want to assign an object reference</seg> </tuv> </tu> I'm not sure what you should do about this because it's not clear to me how you can tell that the "<b>" and "</b>" text nodes shouldn't be replaced... Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] RE: Next node name, Casadome, Francisco | Thread | RE: [xsl] RE: Next node name, Hunsberger, Peter |
Re: [xsl] a namespace problem, Jeni Tennison | Date | RE: [xsl] RE: Next node name, Hunsberger, Peter |
Month |