RE: [xml-dev] How to get processing-instruction's pseudo-attribute

From
Michael Kay <>
To
'Long JingJun' <>,
Date
2007-01-09T08:46:20
ID
<006301c733ca$a27f2380$6401a8c0@turtle>
Thread
RE: [xml-dev] How to get processing-instruction's pseudo-attribute
> I have the following PI in the XML document:
> 
> <?page page_number='1' width='2000'?>
> 
> I want to retrieve the PI's pseudo-attribute in XSLT 
> stylesheet. I tried:
> 
> <xsl:template match="processing-instruction('page)">
>     <xsl:value-of select="@page_number"> </xsl:template>
> 
> This does NOT work. Because attributes are not really 
> attributes in PI.
> 
> I tried the following method:
> <xsl:template match="processing-instruction('page_start')">
>         <xsl:variable name="page_number" 
> select='substring-before(substring-after(., 
> "page_number=&apos;"), "&apos;")'/> </xsl:template>
> 
> Yes, this works. But this seems not the best way.
> 
> So, my question is:
> Is there a standard way in XML/XSLT to retrieve PI's 
> attribute? If not,  is there any plan to handle this in 
> XML/XSLT standard?

There's no standard way.

Saxon has an extension function:

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

Because there's no standard for the internal structure of a processing
instruction, you're unlikely to get a standard way to access the internal
structure.

Michael Kay
http://www.saxonica.com/