|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Writing a stylesheet to create another XML Documen
Hi Kunal, > However, in VS.NET which uses MSXML 3.0, there is no output at all > if the "EXTRA STUFF" is there in the stylesheet, else all works out > well. The "EXTRA STUFF" is a template matching the root node: <xsl:template match="/"> <xsl:for-each select="Tutorial/AuthorList/Author"> <xsl:value-of select="Name" /> </xsl:for-each> </xsl:template> When the processor starts its work, it begins at the root node of the source document (in your case Tutorial.xml) and tries to find a template that matches that root node. You've provided one for it here, so this is the template that gets used to generate the output of the transformation. This template tells the processor to find all the Author elements within the AuthorList within the Tutorial document element of Tutorial.xml, then, for each of them, give the Name element child of that Author. However, in Tutorial.xml, the Author elements don't have Name element children. So for each of the Author elements, you generate nothing. And the output is therefore empty. In other words, this "EXTRA STUFF" template is overriding everything else in your stylesheet because it matches the root node of the source document, and completely determines the result of the transformation. I'm not sure what you wanted to achieve with this template. Possibly you wanted to apply templates to the Author elements in Author.xml (rather than copying them), and retrieve their Name element children in that way. To do so, apply templates rather than copying the Author elements, in a different mode than usual ('details' mode, say): <xsl:template match="Author"> <xsl:variable name="id" select="@id" /> <xsl:for-each select="$authors"> <xsl:apply-templates select="key('authors', $id)" mode="details" /> </xsl:for-each> </xsl:template> and then have a template that matches Author elements in 'details' mode, and gives their names: <xsl:template match="Author" mode="details"> <xsl:value-of select="Name" /> </xsl:template> Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
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
|






