Subject: RE: [xsl] Data-Dtriven node selection From: "Aron Bock" <aronbock@xxxxxxxxxxx> Date: Sun, 13 Mar 2005 18:25:19 +0000 |
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 -> |
---|---|---|
[xsl] Data-Dtriven node selection, David Laub | Thread | RE: [xsl] Data-Dtriven node selecti, Ross, Douglas |
[xsl] Stylesheet from a stylesheet, Midsummer Sun | Date | Re: [xsl] Recursive sums in xslt 1., David Carlisle |
Month |