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

Re: [xsl] Preceding sibling selction


Subject: Re: [xsl] Preceding sibling selction
From: Senthilukvelaan <skumaravelan@xxxxxxxxxxxxxx>
Date: Tue, 3 Mar 2009 12:04:26 -0800

Hi All,
As Michael suggested, Though I have added two matching templates for
the content-type, My desired output is not showing. I am not sure What
am I missing in here.

My  XML Input looks like this .

<Message>
<Return-path></Return-path>
<Received>
</Received>
<From>testing@xxxxxxxxx</From>
<Subject>Testing Mime </Subject>
<MIME-version>1.0</MIME-version>
<Content-type boundary="test">multipart/alternative</Content-type>
<Body>
<Message>
<Content-Disposition>inline</Content-Disposition>
<Content-Type charset="ISO-8859-1">text/plain</Content-Type>
<Content-Transfer-Encoding>quoted-printable</Content-Transfer-Encoding>
<Body>
Hello Welcome to MIme Text message.
</Body>
</Message>
<Message>
<Content-Disposition>inline</Content-Disposition>
<Content-Type charset="ISO-8859-1">text/html</Content-Type>
<Content-Transfer-Encoding>quoted-printable</Content-Transfer-Encoding>
<Body>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Testing MIME</title>
<meta content="text/html; charset=utf-8" http-equiv="content-type"/>
</head>
<body>
<p>
Hello Welcome to MIme HTML message.
</p>
</body>
</html>
</Body>
</Message>
</Body>
</Message>

My XSLT is the below.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
	<xsl:template match="/">
		<html>
			<body>
				<table>
		<xsl:call-template name="text"></xsl:call-template>
		<xsl:call-template name="html"></xsl:call-template>
				</table>
			</body>
		</html>
	</xsl:template>
<xsl:template name="text" match="Message[Content-Type='text/plain']/Body">
<div id="textForm">
<textarea id="output" readonly="readonly" rows='30'>
<xsl:value-of select="." />
</textarea>
</div>
</xsl:template>

<xsl:template name="html"  match="Message[Content-Type='text/html']/Body">
<div id="htmlForm">
<xsl:value-of select="." disable-output-escaping="yes"/>
</div>
</xsl:template>
</xsl:stylesheet>

I want to show only the Body text value for the said match.
I am not sure ,which node causing the problem to show the Body  text value?

Kindly help.



On Tue, Mar 3, 2009 at 12:14 AM, Michael Kay <mike@xxxxxxxxxxxx> wrote:
>
> I would have two template rules:
>
> <xsl:template match="MIME[Content-Type='text/plain']/BODY">
> ...
> </xsl:template>
>
> and another
>
> <xsl:template match="MIME[Content-Type='text/html']/BODY">
> ...
> </xsl:template>
>
> to match BODY elements based on the Content-Type of their enclosing MIME
> element.
>
> Michael Kay
> http://www.saxonica.com/
>
>> -----Original Message-----
>> From: Senthilukvelaan [mailto:skumaravelan@xxxxxxxxxxxxxx]
>> Sent: 03 March 2009 05:10
>> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
>> Subject: [xsl] Preceding sibling selction
>>
>> Hi
>> I would like to produce the below expected output, How I do
>> select a BODY, based on the preceding sibling value .
>>
>> If it is "text/plain" It should be shown in text area node.
>> If it is "text/html" and it should be selected and rendered.
>> I need a help in selecting the testing the preceding sibling
>> . I am not sure ,How do I escape a "/".
>>
>> Thanks,
>> SK
>>
>> XML message
>> <BODY>
>> <Parts>
>> <MIME>
>> <Content-Type charset="iso-8859-1">text/plain</Content-Type>
>> <Content-transfer-encoding>7bit</Content-transfer-encoding>
>> <BODY>
>> Here is the text of the message.
>> </BODY>
>> </MIME>
>> <MIME>
>> <Content-Type charset="iso-8859-1">text/html</Content-Type>
>> <Content-transfer-encoding>binary</Content-transfer-encoding>
>> <BODY>
>> <HTML>
>> <HEAD></HEAD>
>> <BODY>
>> <P>
>> Here is the html of the message.
>> </P>
>> </BODY>
>> </HTML>
>> </BODY>
>> </MIME>
>> </Parts>
>> </BODY>
>>
>> Expected output:
>>
>> <html>
>> <div id=htmlForm>
>> <HTML>
>> <HEAD></HEAD>
>> <BODY>
>> <P>
>> Here is the html of the message.
>> </P>
>> </BODY>
>> </HTML>
>> </div>
>> <div id=textForm>
>> <textarea id="output" readonly="readonly"rows='30'> Here is
>> the text of the message.
>> </textarea>
>> </div>
>> <html>


Current Thread
Keywords