Re[2]: [xsl] selecting an element in an external doc using its id attribute

Subject: Re[2]: [xsl] selecting an element in an external doc using its id attribute
From: Cindy Mazza <clm6u@xxxxxxxxxxxx>
Date: Tue, 18 Jun 2002 09:42:14 -0400
Thank you so much for your help - it worked beautifully - that's exactly what I needed.

JP> Cindy Mazza wrote:
>> But when I try to find an element whose id attribute is equal to the
>> value of the 'from' variable, I get an error saying "Unexpected token
>> [<function>] in path expression."
>> 
>>         <xsl:variable name="from" select="@from"/>
>>         <xsl:variable name="docnode" select="document('../texts/odes.xml')"/>
>>         <xsl:message>
>>           <xsl:value-of select="$docnode//id($from)"/>
>>         </xsl:message>
>> 
JP> You can't use id() this way. A slash '/' in an XPath mus be
JP> followed by another step, and functions, like id(), do not
JP> fall into this category (in XPath 1.0).

JP> Use either a predicete
JP>    <xsl:message>
JP>      <xsl:value-of select="$docnode//*[@id=$from]"/>
JP>    </xsl:message>
JP> (supposed all your ID attributes are named "id")
JP> or change the context using an xsl:for-each:
JP>    <xsl:message>
JP>      <xsl:for-each select="$docnode">
JP>        <xsl:value-of select="id($from)"/>
JP>      </xsl:for-each>
JP>    </xsl:message>


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread