Subject: Re: [xsl] checking sequence inside processing-instruction From: "Ganesh Babu N" <nbabuganesh@xxxxxxxxx> Date: Mon, 11 Aug 2008 17:47:19 +0530 |
Dear All, I am testing the saxon:get-pseudo-attribute() function in my xslt 1.0 style sheet to generate the HTML view. My processing-instruction as follows: <?PAGEBREAK id="PAGE0001" number="i"?> I want to display the value in in the number attribute in the HTML view My XSL is as follows: <xsl:template match="processing-instruction('PAGEBREAK')"> <p><xsl:value-of select="saxon:get-pseudo-attribute('@number')"/></p> </xsl:template> this XSL is not generating any info related to number information. even i tried with the @id then it is displaying the following message: Warning: on line 162 of file:/D:/ganesh-schemas/xml/gae.xsl: The attribute axis starting at a processing-instruction node will never select anything Please help me in getting the correct result. 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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] XSL: Print Euro, Pierre MacKay | Thread | RE: [xsl] checking sequence inside , Houghton,Andrew |
RE: [xsl] XSL: Print Euro, Pankaj Chaturvedi | Date | RE: [xsl] XSL: Print Euro, Sathasivam, Elayaraj |
Month |