xsl-list
[Top] [All Lists]

Re: [xsl] Preceding sibling selction

2009-03-03 15:05:39
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(_at_)gmail(_dot_)com</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(_at_)saxonica(_dot_)com> 
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(_at_)googlemail(_dot_)com]
Sent: 03 March 2009 05:10
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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>

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>