[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] XSLT test condition


Subject: Re: [xsl] XSLT test condition
From: Senthilukvelaan <skumaravelan@xxxxxxxxxxxxxx>
Date: Mon, 2 Mar 2009 15:12:14 -0800

I use the below XSLT and When I content-type has the same value in
text/html and it goes to the
otherwise condition.  I am not sure how do I escape the "/" during the test.
Any pointers would be helpful.
Thanks,
Sen
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
	<xsl:variable name="HTML" select="text/html" />
	<xsl:variable name="TEXT" select="text/plain" />

	<xsl:template match="/">
		<html>
			<body>
				<table>
					<xsl:apply-templates />
				</table>
			</body>
		</html>
	</xsl:template>

	<xsl:template match="node()">
	 <xsl:if test="normalize-space(node())">
		<tr>
			<td><xsl:value-of select="name(.)" /></td>
			<td>
			<xsl:variable name="content_type"
select="normalize-space(preceding-sibling::Content-type[2])"/>
				<xsl:value-of select="$content_type"/>
			<xsl:choose>
				<xsl:when test="$content_type=$HTML" >
				<xsl:value-of select="text()" disable-output-escaping="yes"/>
				</xsl:when>
				<xsl:otherwise>
				 <xsl:value-of select="text()"/>
				</xsl:otherwise>
			</xsl:choose>
			</td>
		</tr>
			<xsl:apply-templates/>
	 </xsl:if>
	</xsl:template>

</xsl:stylesheet>

On Mon, Mar 2, 2009 at 2:53 PM, David Carlisle <davidc@xxxxxxxxx> wrote:
>
>
> you haven't said what your problem was, or shown the code causing the
> problem.
> The test you posted should be Ok (if your processor supports d-o-e) if
> the variable HTML is set to the string 'text/html', or of course you
> could use this string directly. You don't need a variable here, but
> perhaps you use the same string in several places?
>
>
> Of course it's almost always the wrong thing to do to use d-o-e (but for
> copying fragmenst of html, it's perhaps forgivable)
>
>
> Apart from yur question about the test, matching on node() will produce
> a very strange result structure.
>
> on an element you produce a table row, and then apply templates to the
> element's children, which will be a text node typically which will also
> match the template and produce a row with two empty td, the fist td empty
> as a text node has "" for name() and the second td empty as a text node
> has no text node children so select="text() is empty.
>
>
>
> David
>
> ________________________________________________________________________
> The Numerical Algorithms Group Ltd is a company registered in England
> and Wales with company number 1249803. The registered office is:
> Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.
>
> This e-mail has been scanned for all viruses by Star. The service is
> powered by MessageLabs.
> ________________________________________________________________________


Current Thread
Keywords