Thanks David, it really works!
Now consider the following example with table:
XML Doc:
========
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="D:\Test\XML\subst.xhtml"?>
<mapping>
<NAME>My Name</NAME>
<ADDR>My Address</ADDR>
<MYTABLE>
<ROW><C1>first</C1><C2>last</C2></ROW>
<ROW><C1>dram</C1><C2>piano</C2></ROW>
</MYTABLE>
</mapping>
XHTML - XSLT Doc:
=================
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xsl:version="1.0">
<head><title>My Template</title></head>
<body>
<br />Name <input type="text" value="{/mapping/NAME}" size="15"/>
<br />Address <input type="text" value="{/mapping/ADDR}" size="15"/>
<table>
<thead>
<tr>
<th>One</th>
<th>Two</th>
</tr>
</thead>
<tbody>
<xsl:for-each select="/mapping/MYTABLE/ROW">
<tr>
<td><xsl:value-of select="C1"
/></td>
<td><xsl:value-of select="C2"
/></td>
</tr>
</xsl:for-each>
</tbody>
</table>
</body>
</html>
The only problem is that while viewing the xhtml doc,
I cannot see the single (template) row, because it's hidden
in unknown tag for xhtml (xsl:value-of). I wish to see it as I see
the {/mapping/NAME} and {/mapping/ADDR}.
Again, my point is that I want to be able to build and design the
page as a regular html (xhtml) doc, using standard tools.
Without seeing table's rows, I cannot design the table that way.
-- Amir
-----Original Message-----
From: David Carlisle [mailto:davidc(_at_)nag(_dot_)co(_dot_)uk]
Sent: Thursday, December 04, 2003 1:01 PM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] How to Substitute HTML template with values?
XML Doc:
<mapping>
<@@@NAME@@@>My Name</@@@NAME@@@>
<@@@ADDR@@@>My Address</@@@NAME@@@>
</mapping>
That's not XML, XML element names can not have @
If you changed your names to well formed XML you could program this in
xslt, or if you are prepared to change your syntax just a bit you could
use the "literal result element as stylesheet" syntax
xmldoc:
<mapping>
<NAME>My Name</NAME>
<ADDR>My Address</NAME>
</mapping>
stylesheet == XHTML template
<html xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xsl:version="1.0">
<head><title>My Template</title></head>
<body>
<br />Name <input type="text" value="{/mapping/NAME}" size="15"/>
<br />Address <input type="text" value="{/mapping/ADDR}" size="15"/>
</body>
</html>
that is all you need have is an xsl:version attribute in your html
element then you can use AVT templates to pull things into attributes (or
any xsl instruction such as xsl:value-of to pull things into elements)
David
--
http://www.dcarlisle.demon.co.uk/matthew
________________________________________________________________________
This e-mail has been scanned for all viruses by Star Internet. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list