|
Subject: [xsl] Using one nodeset to dictate the format of data from another nodeset From: "Rebecca O'Connell" <rebecca321@xxxxxxxxx> Date: Wed, 6 Jun 2007 19:40:26 -0400 |
I have two nodesets in a single XML document. I am trying to output the data from the first nodeset in a format derived from the contents of the second nodeset. The problem is that the second nodeset is nested elements with the same name. This means I need a recursive template call to make the output nest properly. This results in extra calls to the template. I know what's wrong with my current approach, but I can't figure out how to fix it. Does anyone know how to solve this problems?
I would also like to be able to set the header levels within my content based on the depth of the content element. Is it possible to "feed" a template data from the template that called it?
XML: <source-data> <content id="id1">content-1</content> <content id="id2">content-2</content> </source-data>
<structure-data>
<topic-ref idref="id1" >
<topic-ref idref="id2" >
</topic-ref>
</structure-data>DESIRED OUTPUT:
<html>
<div>content-1
<div>content-2</div>
</div>
</html>ACTUAL OUTPUT:
<html>
<div>content-1
<div>content-2</div>
</div>
<div>content-2</div>
</html>
XSL: <xsl:key name="id" match="concept" use="@id" /> <xsl:key name="idref" match="*" use="@idref" />
<xsl:template match="topic-ref"> <xsl:choose>
<div class="TOPIC-REF">
<!-- Select the source node which corresponds to the idref in the
structure node -->
<xsl:apply-templates select="key('id', ./@idref)"/>
<xsl:for-each select="./topic-ref">
<xsl:apply-templates select="topic-ref"/>
</xsl:for-each>
<xsl:apply-templates select="topic-ref"/>
</div>
</xsl:when>
<xsl:when test="not(./*) and name(../.)='content'">
<xsl:apply-templates select="key('id', ./@idref)"/>
</xsl:when>
</xsl:choose>
</xsl:template>I have been banging my head against the wall all day and I am hoping there is an elegant way to do this that I just didn't manage to figure out.
Thank you, Rebecca
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| RE: [xsl] Relative URI Question, Michael Kay | Thread | Re: [xsl] Using one nodeset to dict, David Carlisle |
| RE: [xsl] Relative URI Question, jason heddings | Date | Re: [xsl] Using one nodeset to dict, David Carlisle |
| Month |