Subject: RE: [xsl] Data-Dtriven node selection From: "Ross, Douglas" <DRoss@xxxxxxxxxx> Date: Fri, 11 Mar 2005 22:02:43 -0500 |
I am not sure where in the script you need this but the technique you want is something like this: $data = the LR elements $find = the Lookup elements select="$data/LR[@from=$find/@from]" Douglas Ross Developer, HTML UI Framework Kronos E-mail: dross@xxxxxxxxxx www.kronos.com -----Original Message----- From: David Laub [mailto:dlaub@xxxxxxxxxxx] Sent: Friday, March 11, 2005 9:24 PM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: [xsl] Data-Dtriven node selection I may be attempting the impossible. Or I just may be too stupid to figure it out What I want to do is this: use a xml file to specify which nodes from another xml file to select using a data-driven xslt template. For example: 1) My base xml file (LR.xml) , from which I want to select nodes in a data-drivem manner <LR> <Name>David Laub</Name> <Age>53</Age> <Addr>4645 W. Jerome</Addr> <Telephone>847-674 2266</Telephone> <City>Skokie</City> <State>IL</State> </LR> 2) My data-driven "selector" file (LRLookup1.xml) - the intent being for this specific example to select only the name & city nodes - I also want to rename the nodes. <LRLookUp1> <Element from="LR/Name" to="Name"/> <Element from="LR/City" to="HomeTown"/> </LRLookUp1> 3) Finally my stylesheet (GenericLRFiler.xsl) - which doesn't quite work - I associate it with LRLookup1.xml and the stylesheet then explicitly also reads the LR.xml file The key line is: <xsl:value-of select="$LossReport/./@from"/> That's the line that fails: I want to append in a data-driven manner the specific nodes to the existing node-tree in the variable $LossReport. The XPath isn't smart enough to know I want to evaluate ./@from (which holds LR/Name & LR/City from the data-driven selector file) I guess it just thinks I'm appending the string ./@from as part of the XPath, which returns nothing I can succesfully hard code a specific node <xsl:value-of select="$LossReport/LR/City"/> but that defeats teh whole purpose of the whole exercise! Here's the full stylesheet <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> <xsl:output method="xml" indent="yes"/> <xsl:variable name="LossReport" select="document('XSLT/LR.xml')"/> <xsl:template match="*"> <xsl:element name="LRFilteredData"> <xsl:apply-templates/> </xsl:element> </xsl:template> <xsl:template match="/LRLookUp1/Element"> <xsl:element name="{./@to}"> <xsl:value-of select="$LossReport/./@from"/> </xsl:element> <xsl:apply-templates/> </xsl:template> </xsl:stylesheet> This is actual output: <LRFilteredData> <Name></Name> <HomeTown></HomeTown> </LRFilteredData> what I want for output is: <LRFilteredData> <Name>David Laub</Name> <HomeTown>Skokie</HomeTown> </LRFilteredData> So is this magic do-able? Thanks in advance David Laub
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Data-Dtriven node selecti, Aron Bock | Thread | RE: [xsl] Data-Dtriven node selecti, Ross, Douglas |
Re: [xsl] XSLT 1 and 2 differences , Midsummer Sun | Date | RE: [xsl] Data-Dtriven node selecti, Ross, Douglas |
Month |