RE: [xsl] Processing instruction

Subject: RE: [xsl] Processing instruction
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Thu, 1 Nov 2007 09:31:56 -0000
> So you need to strip the quotes as well.

Which you can do using 

select="translate(substring-after($num, '='), '&quot;', '')"

If you want to handle a more general pseudo-attribute syntax in your
processing instructions, there's a rarely-used extension function 

http://www.saxonica.com/documentation/extensions/functions/getpseudoattribut
e.html

that allows you to do it directly:

<xsl:template match="processing-instruction('docpage')">
  <xsl:processing-instruction name="page">
    <xsl:value-of select="saxon:get-pseudo-attribute('num')"
xmlns:saxon="http://saxon.sf.net/"/>
  </xsl:processing-instruction>
</xsl:template>

Michael Kay
http://www.saxonica.com


> 
> On 01/11/2007, J. S. Rawat <jrawat@xxxxxxxxxxxxxx> wrote:
> > Hi List,
> > Would anybody help me to get the required result.
> >
> > Processor: Saxon.exe
> >
> > INPUT
> > <?docpage num="337"?>
> >
> > REQUIRED OUTPUT
> > <?page 337?>
> >
> > XSLT
> > <xsl:template match="processing-instruction('docpage')">
> >                 <xsl:variable name="num" select="."/>
> >                 <xsl:variable name="num1" 
> select="substring-after($num, '=')"/>
> >                 <xsl:processing-instruction 
> name="page"><xsl:value-of 
> > select="$num1"/></xsl:processing-instruction>
> > </xsl:template>
> >
> > Result of above XSLT is <?page "337"?>
> >
> > thanks
> > ...JSR

Current Thread