Re: [xsl] checking sequence inside processing-instruction

Subject: Re: [xsl] checking sequence inside processing-instruction
From: "Ganesh Babu N" <nbabuganesh@xxxxxxxxx>
Date: Thu, 3 Jul 2008 10:19:48 +0530
Hai all

I am having another question on this post. In another project I have
encountered a processing instruction as <?page 5?> in this how can i
get the value 5 in a test to check the sequence with other pages.

<?page 5?>
<?page 6?>
<?page 8?>

The style sheet should tell <?page 8?> is out of sequence.

Regards,
Ganesh


On 5/31/08, Michael Kay <mike@xxxxxxxxxxxx> wrote:
> You context node in the template is a processing instruction. This path
> expression
>
> <xsl:for-each select="processing-instruction()/name()">
>
> attempts to select children of that processing instruction that are
> themselves processing instructions. A processing instruction cannot have
> children, so Saxon gives you a warning. I don't know what the for-each is
> doing there anyway, take it out.
>
> Note also that a processing instruction does not have attributes. id="P001"
> might look like an attribute, but it is not. You have to parse the value out
> by hand, or by using the saxon:get-pseudo-attribute() extension function,
> see
>
> http://www.saxonica.com/documentation/extensions/functions/getpseudoattribut
> e.html
>
> Michael Kay
> http://www.saxonica.com/
>
>> -----Original Message-----
>> From: Ganesh Babu N [mailto:nbabuganesh@xxxxxxxxx]
>> Sent: 31 May 2008 06:07
>> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
>> Subject: [xsl] checking sequence inside processing-instruction
>>
>> Hai,
>>
>> I am having some processing instructions which will appear like this.
>>
>> <?PAGEBREAK id="P001"?>
>> -------------------
>> -----------------
>> <?PAGEBREAK id="P002"?>
>> -------------
>> ---------------
>> <?PAGEBREAK id="P003"?>
>> --------------------
>> --------------------
>> <?PAGEBREAK id="P004"?>
>> ------------------------
>> ------------------------
>> <?PAGEBREAK id="P006"?>
>>
>>
>> the result should say id="P006" is out of sequence.
>>
>> <xsl:template match="processing-instruction()">
>>      <xsl:for-each select="processing-instruction()/name()">
>>         <xsl:if test="@id !=
>> following-sibling::processing-instruction()/@id"/>
>>
>> <xsl:message>following-sibling::processing-instruction()/@id
>> is out of sequence</xsl:message>
>>         </xsl:if>
>>      </xsl:for-each>
>> <xsl:template>
>>
>> When i compile this sheet with saxon9b, it is showing error
>> as processing-instruction can not select anything.
>>
>> Please help me in solving this problem.
>>
>> Regards,
>> Ganesh

Current Thread