[xslt] [BUG?] xslt:variable to represent some elements issue



Hi all,

well, I'm about to develop a dynamic portal based on XML/XSLT, via 
libxml2/libxslt, however, I'm encountering some intregal issues actually.

Assume the following in global scope:

<xsl:param name='action' select='""'/>

<xsl:variable name='result'>
  <xsl:choose>
    <xsl:when test='$action = "login"'>
      <Redirect sid='{$sid}'>to-page-blah.xml</Redirect>
    </xsl:when>
    <xsl:ohterwise>
      <Pass/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:variable>

<xsl:template match='/Page'>
  <xsl:choose>
    <xsl:when test='$result/Redirect'>
      <xsl:apply-templates select='document($result/Redirect)/Page'/>
    </xsl:when>
    <xsl:otherwise>
      <!-- actually displays the page, w/o further pre-processing -->
      <xsl:apply-templates select='.' mode='contents'/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

This looks really neat, and would be ideal, HOWEVER, I can't qualify the 
"result" variable as "$result/Redirect" or whatever would look like an node 
access. In fact, the global variable is *not* a string, it's an element 
template, exactly as the XSLT specification has declared (I read it that way 
at least);

When now accessing my page with the proper arguments, libxslt errors out with 
the message "Type error". Nothing more (event not *what* type error it 
complains about:( ).

So now, is this a bug of libxslt's xpath or XSLT implementation regarding 
xsl:variable element templates?

If not, how do I reach my goal then?
I mean, I need a way to store within a global variable more than a single 
state (for example 2), and elements would just be gread to have (so the spec 
says, you can use global vars to represent elements)

I could achieve this by storing a formatted pattern within $result and extract 
my desired elements using xpath's string functions, but this indeed would be 
really an performance overhead and wouldn't look that neat.

Thanks in advance,
Christian Parpart.

-- 
 19:09:26 up 150 days,  8:17,  0 users,  load average: 0.97, 0.48, 0.31







Attachment: pgpOO7Vl2aRsA.pgp
Description: PGP signature



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]