xsl-list
[Top] [All Lists]

RE: Deciding whether param contains nodeset

2005-10-17 04:26:46
Hi,

i have an template

      <xsl:template name="test">
              <xsl:param name="repl" select="''"/>
      </xsl:template>

Sometimes i call this template with repl = string, sometimes i want to
call it with repl = nodeset.

When i apply-templates on repl and repl is a string, so the following
execption arises:
org.apache.xpath.XPathException: #RTREEFRAG kann nicht in NodeList
konvertiert werden!
                                                        (in english:
cannot be converted in nodeset)

So i wonder whether it is possible to decide if repl is a string or a
nodeset.
If repl = string output should be the value of the String
if repl = nodeset output should be apply-templates nodeset

How can i decide in "test" which type the param repl is of?

You can't with XSLT 1.0. How about

  <xsl:template name="test">
    <xsl:param name="sepl-string" select="''"/>
    <xsl:param name="sepl-nodeset" select="/.."/>
    <xsl:choose>
      <xsl:when test="$sepl-nodeset">
        <xsl:apply-templates select="$sepl-nodeset"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="$sepl-string"/>
      </xsl:otherwise>
    <xsl:choose>
  </xsl:template>

and when you call the template pass the correct parameter.

Cheers,

Jarno

--~------------------------------------------------------------------
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>