Subject: RE: [xsl] Re-visiting a Child Node From: "Daniel Newman" <daniel.newman@xxxxxxxxxxx> Date: Tue, 10 Apr 2001 09:24:45 +0100 |
This could get quite complicated, but the table I want to produce looks like: http://212.87.82.97/moorgate/xml_interface/SecurityholdingValidation.htm The XML will have the following structure: http://212.87.82.97/moorgate/xml_test/SecurityholdingValidation.xml Back to the html table, columns Holder Name, Direct Credit Instructions, Dividend Reinvestment Plan and Annual Report Instructions come from the RetrieveNameAndAddressRSResponse node, and table column Holding Balance comes from msg_holding_information, with some details from RetrieveClassInfoRSResponse (class = class_code). My only thought at this time is to process the RetrieveNameAndAddressRSResponse node first, storing the values I want as local variables, and then print them to the page when needed? But, I can't see why I can't use my initial function/template to generate the table rows: <xsl:template name="PrintRows"> <xsl:param name="ChildNode" /> <xsl:param name="SelectNode" /> <xsl:param name="RowColor" /> <xsl:param name="DisplayText" /> <tr> <td bgcolor="{$RowColor}" valign="top" width="45%"> <b><font face="Arial, Helvetica, sans-serif" size="2"> <xsl:value-of select="$DisplayText" /> </font></b> </td> <td bgcolor="{$RowColor}" width="45%"><font face="Arial, Helvetica, sans-serif" size="2"> <xsl:apply-templates select="*[name()=$ChildNode/$SelectNode]" /> </font></td> <td bgcolor="#000066" width="5%"><br/></td> <td bgcolor="#FF9933" width="5%"><br/></td> </tr> </xsl:template> As this would make my code so much easier! Any ideas? Thanks, Daniel. -----Original Message----- From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of Jeni Tennison Sent: 10 April 2001 00:02 To: Daniel Newman Cc: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: Re: [xsl] Re-visiting a Child Node Hi Daniel, > The second call to RetrieveNameAndAddressRSResponse wipes everything > that came before it. How can I revisit this part of the tree without > the page erasing the previous code? It *looks* as though you're suffering a fundamental misunderstanding about how XSLT works. In your code you have two templates that match RetrieveNameAndAddressRSResponse elements, and you seem to be expecting that they are applied in turn. That's not how XSLT works. In XSLT, the processor visits nodes within the node tree, and for each of the nodes, it tries to find *the* template that matches that node, and then follows the instruction in that template. If you have two templates that have exactly the same match pattern (the content of the 'match' attribute), then the one that appears last in your stylesheet is the one that will be used. So it's not that the second template wipes over what's generated from the first template, it's that when the RetrieveNameAndAddressRSResponse element has templates applied to it, both templates match it, but the processor can only apply one so it applies the last one in the stylesheet. The first template never gets applied at all. I'm not completely clear on what you're trying to get out - why the dynamic XPath stuff is necessary for your problem. It would be really helpful if you would post an example of the table that you want to get, so that we can look at various ways of getting it. If you really need dynamic XPath evaluation, then you might want to see whether your processor can help - it might support an evaluate() function (e.g. saxon:evaluate()) or allow you to write a user-defined function that can do the same kind of thing (e.g. through DOM manipulation in MSXML). Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Re-visiting a Child Node, Jeni Tennison | Thread | Re: [xsl] Re-visiting a Child Node, Jeni Tennison |
RE: [xsl] XSLT UK - the aftermath, Richard Mitchell | Date | RE: [xsl] passing params using asp , Chris Bayes |
Month |