ASP Error: 70
Description: Permission denied
Source: Microsoft VBScript runtime error

[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: preceding/following character?

Subject: Re: preceding/following character?
From: David Carlisle <davidc@xxxxxxxxx>
Date: Mon, 20 Jun 2005 10:24:26 +0100
template chara
  Thanks David.  That does solve the duplicate problem, but also leaves
  off the second cite element:

there was the obvious bug of course that I wrote following instead of
preceding, and also you need to proceed teh cite always not just in the
case that there is a .

so that would be

<xsl:template match="text()[preceding-sibling::node()[1][self::cite]]">
    <xsl:choose>
      <xsl:when test="substring(.,1,1) = '.'">
        <xsl:text>.</xsl:text>
        <xsl:apply-templates select="preceding-sibling::cite[1]" mode="clean"/>
        <xsl:copy-of select="substring(.,2)"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:apply-templates select="preceding-sibling::cite[1]" mode="clean"/>
        <xsl:apply-templates select="."/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>
  

However that still isn't really right as picking up on the text node
following the only works if there is such a text node, it fails if the
cite node is the last child or if it's followed by something other than
text)

so...

<sect>
<p>Some text and more text <cite/>. Some <em>more</em> text. Some text
and more text <cite/>.ffff<cite/></p>

<p>Some text and more text <cite/><em>. Some more</em> text. Some text
and more text <cite/>.ffff<cite/></p>
</sect>




<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
  xmlns:bib="http://www.example.org" version="2.0"
exclude-result-prefixes="bib">
  
 

  <xsl:template match="sect">
    <div>
      <xsl:apply-templates/>
    </div>
  </xsl:template>


  <xsl:template match="em">
    <EM>
      <xsl:apply-templates/>
    </EM> 
  </xsl:template>
 
  
 <xsl:template match="cite" mode="clean">[XXX<xsl:number/>]</xsl:template>
 

<xsl:template match="cite[not(following-sibling::node()[1][self::text()[starts-with(.,'.')]])]">
 <xsl:apply-templates mode="clean" select="."/>
</xsl:template>

  
 
  <xsl:template match="text()[preceding-sibling::node()[1][self::cite]][starts-with(.,'.')]">
        <xsl:text>.</xsl:text>
        <xsl:apply-templates select="preceding-sibling::cite[1]" mode="clean"/>
        <xsl:copy-of select="substring(.,2)"/>
  </xsl:template> 

 
</xsl:stylesheet>




$ saxon cite.xml cite.xsl
<?xml version="1.0" encoding="utf-8"?><div>
Some text and more text .[XXX1] Some <EM>more</EM> text. Some text
and more text .[XXX2]ffff[XXX3]

Some text and more text [XXX1]<EM>. Some more</EM> text. Some text
and more text .[XXX2]ffff[XXX3]
</div>


________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.