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