xsl-list
[Top] [All Lists]

RE: [xsl] How can I test the last preceding text character?

2007-10-29 14:38:06
Replace

preceding-sibling::*[1]/text()[last()]

with

preceding-sibling::node()[1]

If the preceding sibling is an element node, you'll get its string value
automatically, you don't need to get it's text node children explicitly.

There's also an ends-with() function in 2.0 which might be clearer than
regular expressions for such a simple job.

Michael Kay
http://www.saxonica.com/

-----Original Message-----
From: Sascha Mantscheff [mailto:922492(_at_)gmx(_dot_)de] 
Sent: 29 October 2007 21:28
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] How can I test the last preceding text character?

How do I test if the very last character of any preceding 
text - be it in a parent or a sibling - has a certain value?
Example:

<a>
    This is parent text a not ending with an x.
    <d>This ends with an x</d>
    <e>This should issue a message.</e>
    This is parent text ending with an x </a>

Now I want to know for each child element is if it is 
preceded by an "x".
I can check the sibling with

<xsl:if test="matches(preceding-sibling::*[1]/text()[last()],'x\$') ">
    <xsl:message>
        Element <xsl:value-of select="name()"/> is preceded by an x.
    </xsl:message>
</xsl:if>

But I cannot test the surrounding parent content with the 
same model because the parent text may surround the child text.

What's the way to do it?




--~------------------------------------------------------------------
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>
--~--



--~------------------------------------------------------------------
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>
--~--