Naomi,
XPath has no function ends-with() to complement its starts-with() function,
but it does have a substring() function that can be used for this. It takes
three arguments: a string, an offset and a length. If you set the offset to
the length of the string, and the length to 1, you get the last character.
So you might have:
<xsl:template match="para">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
<xsl:if test="substring(.,string-length(.),1) = ':'">
<xsl:processing-instruction name="keep-together"/>
</xsl:if>
</xsl:template>
etc. Note nothing is being done here to normalize for errant whitespace;
the normalize-space() function will help if you have to account for that.
Cheers,
Wendell
At 11:18 AM 6/29/2004, you wrote:
Is there anyway to find the following scenario:
<para>The following items you really need to
know:</para>
I'd like to be able to find all para's that have a
colon as their last character and insert a processing
instruction to tell the output-formatter not to allow
a page break. I use processing instructions in many
other scenarios, but I've never had to look an
elements actual content. Any suggestions would be
appreciated.
======================================================================
Wendell Piez
mailto:wapiez(_at_)mulberrytech(_dot_)com
Mulberry Technologies, Inc. http://www.mulberrytech.com
17 West Jefferson Street Direct Phone: 301/315-9635
Suite 207 Phone: 301/315-9631
Rockville, MD 20850 Fax: 301/315-8285
----------------------------------------------------------------------
Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================