xsl-list
[Top] [All Lists]

Re: detecting a colon (':') within a para

2004-06-29 14:23:48
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
======================================================================



<Prev in Thread] Current Thread [Next in Thread>