RE: [xsl] Checking the text nodes just preceding the context

Subject: RE: [xsl] Checking the text nodes just preceding the context
From: Jarno.Elovirta@xxxxxxxxx
Date: Thu, 27 Sep 2001 06:59:57 +0300
Hip hei!

[...]
> Now I can guarantee that <foo> will be child of <p> but nothing else. 
> 
> Any ideas how to do this?

I don't undestand that quarentee part of your question, but this

<?xml version="1.0" encoding="ISO-8859-1"?> 
<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>

<xsl:template match="@*|node()">
  <xsl:copy>
    <xsl:apply-templates select="@*|node()"/>
  </xsl:copy>
</xsl:template>

<xsl:template match="foo">
  <xsl:variable name="text"
select="normalize-space(preceding::text()[normalize-space() != ''][1])" />
  <xsl:choose>
    <xsl:when test="substring($text, string-length($text)) =
'.'">Foo</xsl:when>
    <xsl:otherwise>foo</xsl:otherwise>
  </xsl:choose>
</xsl:template>

</xsl:stylesheet>

will do the capitalization - just retrive the first preceding text node that
is not whitespace, normalize that, and then test if the last character is a
period. Hope this helps,

Jarno

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread