[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: <xsl:output method="xml"> and an if sentence to o
Hi, Jacob, I have written a different stylesheet to produce a dl list with different dd elements if an attribute named "this" is present: <?xml version='1.0'?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" encoding="iso-8859-1" omit-xml-declaration="yes" standalone="no" indent="no" /> <xsl:template match="/"> <xsl:apply-templates match="opml/body/outline"/> </xsl:template> <xsl:template match="outline"> <dl> <dt><xsl:value-of select="@title" /></dt> <xsl:for-each select="outline"> <xsl:choose> <xsl:when test="@this"> <dd class="active"> <a href="{@url}><xsl:value-of select="@title" /></a> </dd> </xsl:when> <xsl:otherwise> <dd> <a href="{@url}><xsl:value-of select="@title" /></a> </dd> </xsl:otherwise> </xsl:choose> </xsl:for-each> <dl> </xsl:template> </xsl:stylesheet> I think this stylesheet will work (though it's hard to say with no XML source to examine), and it much more closely follows XSLT's normal processing model. Note that this stylesheet still does not produce a well-formed XML document, as the result document will have no root node (or will have multiple root nodes, depending on how you view such things). I assume you are going to do something more with the output (such as embed it in some other file). HTH Jay Bryant Bryant Communication Services (presently consulting at Synergistic Solution Technologies) Jacob Friis Larsen <webcom.dk@xxxxxxxxx> 05/09/2005 10:39 AM Please respond to xsl-list@xxxxxxxxxxxxxxxxxxxxxx To xsl-list@xxxxxxxxxxxxxxxxxxxxxx cc Subject <xsl:output method="xml"> and an if sentence to output XML Below is my XSLT file. I'd like to use <xsl:output method="xml">, but I haven't found a solution to my problem, which is how to output <dd class="active"> if parameter this exists and <dd> if it doesn't exist. I would appreciate any help. Thanks, Jacob <?xml version='1.0'?> <xsl:stylesheet version="1.0" xmlns:xsl=" http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text" encoding="iso-8859-1" omit-xml-declaration="yes" standalone="no" indent="no" /> <xsl:template match="/"> <xsl:for-each select="/opml/body/outline"> <xsl:call-template name="outline"> <xsl:with-param name="title"><xsl:value-of select="@title" /></xsl:with-param> </xsl:call-template> </xsl:for-each> </xsl:template> <xsl:template name="outline"> <xsl:param name="title" /> <xsl:text><dl></xsl:text> <xsl:text><dt></xsl:text> <xsl:value-of select="$title" /> <xsl:text></dt></xsl:text> <xsl:for-each select="outline"> <xsl:choose> <xsl:when test="@this"><dd class="active"></xsl:when> <xsl:otherwise><dd></xsl:otherwise> </xsl:choose> <xsl:text><a href="</xsl:text> <xsl:value-of select="@url" /> <xsl:text>"></xsl:text> <xsl:value-of select="@title" /> <xsl:text></a></xsl:text> <xsl:text></dd></xsl:text> </xsl:for-each> <xsl:text><dl></xsl:text> </xsl:template> </xsl:stylesheet>
|
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
|