xsl-list
[Top] [All Lists]

Re: [xsl] checking sequence inside processing-instruction

2008-08-11 05:17:42
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(_at_)saxonica(_dot_)com> 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(_at_)gmail(_dot_)com]
Sent: 31 May 2008 06:07
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>