xsl-list
[Top] [All Lists]

Re: Find and change an attribute in a Processing Instruction

2006-01-30 12:30:24
1) The "hide" strings in the processing instructions are not being replaced
by "show".

<xsl:when test="contains($text, $find)">
   <xsl:value-of select="substring-before($text, $find)"/>
   <xsl:value-of select="$find"/>
... and so on


So this part of your code gets everything before the occurance of
$find, returns that.  Then it returns the value of $find.  It keeps
doing this while there is still a string (I hope, otherwise it won't
terminate).  It might work better to have something like:

<xsl:when test="contains($text, $find)">
   <xsl:value-of select="substring-before($text, $find)"/>
   <xsl:value-of select="$replace"/>
..and so on

which would return all the text before the first occurance of $find,
the the value of $replace, and then do a recursive call on the rest of
the string (everything after the first occurance of $find).


2) I am loosing the <? ?> delimiters on the processing instructions.

As far as I can tell you're not "losing them", you never create a new
processing instruction.  Your stylesheet essentially says: when you
see a processing instruction,  generate this text.

I've only skimmed your email, but I would venture you need something like:

<xsl:template match="/processing-instruction()">
 <xsl:processing-instruction>
<xsl:call-template name="do-replace">
   <xsl:with-param name="text" select="."/>
 </xsl:call-template>
</xsl:processing-instruction>
</xsl:template>

Or in other words: when you see a processing instruction in the input
XML, produce a processing instruction that contains the results of the
call-template.


3) Lower level processing instructions are not getting written to the output
(e.g. <?Fm Condstart Prolog?>).

Just got an email you figured out what's wrong there.



I am using Saxon 8.5, but my stylesheet needs to be XSLT 1 compatible.
Thanks in advance for any help you can give.

So why not use Saxon 6.5?  Besides, this looks XSLT 1ish to me.

Jon Gorman

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--