|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] 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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








