Hi,
I am a relative beginner, so forgive what is probably a very easy
question but....
I am trying to write a stylesheet that will replace language
descriptions with their iso 639 code. I have a doc containing the
language codes of the form:
<languages>
<language>
<name>English</name>
<iso-code>en</iso-code>
</language>
...
...
</languages>
the source document contains <language> tags with text that matches the
name tag in the language document. Here is my attempt:
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:param name="languagesDocFilename"/>
<xsl:variable name="languagesDoc"
select="document($languagesDocFilename)" />
<xsl:template match="language">
<language>
<xsl:value-of
select="$languagesDoc/languages/language[current()=name]"/>
</language>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template> </xsl:stylesheet>
This almost works, but the output contains language tags like this:
...
<language>
de
German
</language>
when what I want is :
<language>
de
</language>
I guess this is because the template that matches on everything is
copying the German text, but havent been able to find a way to get it to
output only the iso code.
David Sinclair.