This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: Checking the text nodes just preceding the context


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]