[xsl] Tag Replacement

Subject: [xsl] Tag Replacement
From: Greg Gerou <GGerou@xxxxxxxxxxxxxx>
Date: Thu, 14 Feb 2002 16:43:20 -0700
Hi,
I'm attempting to use XSL to do the following:

Input document:

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml";>
<wml>
	<card id="welcome" title="Welcome">
		<p><strong>Welcome to this WAP page!</strong></p>
		<a href="products.wml">Products</a>
		<p><a href="links.wml"><small>Links</small></a></p>
	</card>
</wml>

Output document:

<?xml version="1.0" encoding="UTF-8"?>
<vxml>
	<form id="welcome">
		<field>
			<prompt>Welcome to this WAP page!
			<voice gender="female">Products</voice>
			<voice gender="female">Links</voice></prompt>
		</field>
	</form>
</vxml>

In other words, I'm attempting to strip all the displayed text from the
original document and display it in the transformed document, but each
anchor tag ("<a...") is replaced by a <voice> tag. The following XSL will do
all this, except handle the anchor cases (it will ouput the above "output
document" without the voice tags):

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
	<xsl:output method="xml" version="1.0" encoding="UTF-8"
indent="yes"/>
	<xsl:template match="/">
		<vxml version="1.0">
			<xsl:for-each select="*/card">
				<form id="{@id}">
					<field>
					<xsl:for-each select="*">

						<xsl:value-of select="."/>
					</xsl:for-each>
					</field>
				</form>
			</xsl:for-each>
		</vxml>
	</xsl:template>
	</xsl:template>
</xsl:stylesheet>

What changes are necessary to get it to work in the desired fashion? Thanks
in advance!

Greg Gerou
ggerou@xxxxxxxxxxxxxx

 

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread