[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Using one nodeset to dictate the format of data from
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? I am using XSL 2.0, Saxon 8B, XML 1.0 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:template match="topic-ref"> <xsl:choose> <xsl:when test="boolean(./*)"> <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
|
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
|