Subject: RE: [xsl] Can't get id() and key() to work From: "Robert Koberg" <rob@xxxxxxxxxx> Date: Sun, 8 Sep 2002 10:02:56 -0700 |
Hi, Assuming you have the key set up correctly you can simply match the 'image' tag from you source XML (example source would help). The source XML's image tag has the unique ID. For example: <xsl:template match="image"> <xsl:for-each select="$infodoc"> <xsl:message>info2=<xsl:value-of select="$path-key"/></xsl:message> <xsl:message>info3=<xsl:value-of select="key('imgInfoKey', $path-key)/@width"/></xsl:message> <xsl:message>info4=<xsl:value-of select="key('imgInfoKey', $path-key)/@height"/></xsl:message> </xsl:for-each> </xsl:template> I try to avoid extensions. Do you really need them? If you can do without, then you need to get into the context of the document you need information from. Then use the key to find the nodeset and get the value you want from there. You cannot store the value of this nodeset in a variable. You need to use the key each time. Does this help? best, -Rob > -----Original Message----- > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of Aaron > Optimizer Digulla > Sent: Sunday, September 08, 2002 9:26 AM > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] Can't get id() and key() to work > > > Hello, > > What I basically need is: > > <xsl:variable name="infodoc" select="document('infodoc.xml')"/> > <xsl:variable name="info" select="$infodoc/id($key)"/> > > ie. I have an XML document in $infodoc which has IDs and I want to > lookup elements in $infodoc. > > I tried to use key() and it actually works but I can't use the > result: > > <xsl:variable name="info-fragment"> > <xsl:for-each select="$imginfo"> > <xsl:copy-of select="key('imgInfoKey', $path-key)"/> > </xsl:for-each> > </xsl:variable> > <xsl:message>info2=<xsl:value-of select="$path-key"/></xsl:message> > <xsl:message>info3a=<xsl:value-of > select="exslt:object-type($info-fragment)"/></xsl:message> > <xsl:message>info3b=<xsl:value-of > select="count($info-fragment)"/></xsl:message> > <xsl:variable name="info" select="exslt:node-set($info-fragment)"/> > <xsl:message>info4=<xsl:value-of select="$info/@width"/></xsl:message> > <xsl:message>info4b=<xsl:value-of > select="exslt:node-set($info-fragment)/@width"/></xsl:message> > > This gives: > > info2=images/uy-online-left.jpg > info3a=RTF > info3b=1 > info4= > info4b= > > so apparently there is something in $info-fragment but what? > > -- > ============================================== > Sowatec AG, CH-8330 Pfäffikon (ZH) > Witzbergstr. 7, http://www.sowatec.com > Tel: +41-(0)1-952 55 55 > Fax: +41-(0)1-952 55 66 > ---------------------------------------------- > Aaron "Optimizer" Digulla, digulla@xxxxxxxxxxx > ============================================== > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Can't get id() and key() , Aaron Optimizer Digu | Thread | Re: [xsl] Can't get id() and key() , Aaron Optimizer Digu |
Re: [xsl] Can't get id() and key() , J.Pietschmann | Date | Re: [xsl] Need feedback on XSL/XML , Aaron Optimizer Digu |
Month |