Subject: RE: checking sequence inside processing-instruction
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Sat, 31 May 2008 08:58:14 +0100
|
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: 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
|