Subject: RE: [xsl] problem using self::node() in for-each From: "Michael Kay" <mhk@xxxxxxxxx> Date: Fri, 21 May 2004 17:40:00 +0100 |
Without studying your logic in detail, inf_source_id = ./inf_source_id is obviously wrong because it means the same as inf_source_id = inf_source_id I suspect you want inf_source_id = current()/inf_source_id Michael Kay > -----Original Message----- > From: Garrett Hynes [mailto:garretthynes@xxxxxxxxxxx] > Sent: 21 May 2004 16:24 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] problem using self::node() in for-each > > > I have an XML document with the following structure: > > XML Input > > <root> > <information type="source"> > <instance> > <inf_type>source</type> > <inf_source_id>1</id> > <inf_name>Source 1</name> > </instance> > <instance> > <inf_type>source</type> > <inf_source_id>2</id> > <inf_name>Source 2</name> > </instance> > </information> > <information type="info"> > <instance> > <inf_type>info</type> > <inf_source_id>2</source_id> > <inf_text>Information 1</text> > </instance> > <instance> > <inf_type>info</type> > <inf_source_id>1</source_id> > <inf_text>Information 2</text> > </instance> > <instance> > <inf_type>info</type> > <inf_source_id>1</source_id> > <inf_text>Information 3</text> > </instance> > <instance> > <inf_type>info</type> > <inf_source_id>2</source_id> > <inf_text>Information 4</text> > </instance> > <instance> > <inf_type>info</type> > <inf_source_id>2</source_id> > <inf_text>Information 5</text> > </instance> > <instance> > <inf_type>info</type> > <inf_source_id>1</source_id> > <inf_text>Information 6</text> > </instance> > </information> > </root> > > The inf_source_id in the <information type="info"> refers to the > inf_source_id in the <information type="source"> > i.e. Information 1 has inf_source_id of 2 meaning it came > from Source 2. > > I'm trying to output all the inf_text using xsl:for-each > along with the name > of the source it has a reference to through inf_source_id. > > e.g. > > Information 1 - Source 2 > Information 2 - Source 1 > Information 3 - Source 1 > Information 4 - Source 2 > Information 5 - Source 2 > Information 6 - Source 1 > > > However, I can't get the XPath expression to select the > correct source node > using the inf_source_id from the current node to work. > I've used this method before except not in <xsl:for-each> and > it works fine. > > > XSLT > > <xsl:template name="handleInformation"> > > <xsl:variable name="info" > select="/root/information/instance[inf_type='info']"/> > > <xsl:for-each select="$info"> > > <xsl:variable name="inf_source" > select="/root/information/instance[inf_type = 'source' and > (inf_source_id = > ./inf_source_id)]/inf_name"/> > > <xsl:call-template name="printInformation"> > <xsl:with-param name="source" select=$inf_source"/> > <xsl:with-param name="text" select=./inf_text"/> > </xsl:call-template> > > </xsl:for-each> > > </xsl:template> > > Thanks, > > Garrett > > _________________________________________________________________ > Help STOP SPAM with the new MSN 8 and get 2 months FREE* > http://join.msn.com/?page=features/junkmail
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] problem using self::node() in, Garrett Hynes | Thread | Re: [xsl] problem using self::node(, Jeni Tennison |
[xsl] problem using self::node() in, Garrett Hynes | Date | Re: [xsl] Setting Base URL For Reso, Jeni Tennison |
Month |