Hi,
Tempore 10:43:10, die 09/15/2005 AD, hinc in
xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com scripsit Ana Gaspar Martínez
<annagaspar(_at_)gmail(_dot_)com>:
I wish to generate an url from the value of one atrribute of the xml
file. I've to transform this value to parse from the .xml to .html. I
attemp that using the follow sentences:
<xsl:variable name= link>
<xsl:value-of select="concat(substring-first(var1,'.'),'.html')"/>
where var1=fichero.xml
</xsl:variable>
<a href="<xsl:value-of select="link"/> link1 </a>
Your code is indeed not well-formed nor valid.
Firstly, remember that XSLT is based on XML. Each and every XSL document must
be well-formed XML. All attribute values must be surrounded by quotes.
Furthermore, your code has two small error in Xpath expressions
('substring-first' must be 'substring-before' and when calling a variable, its
name must be preceded by a dollar sign) and one major conceptual error:
You cannot possibly nest elements inside an attribute.
You can go two two ways to solve this:
#1 Use an Attribute Value Template (AVT):
<a href="{$link}"> link1 </a>
#2 Use 'xsl:attribute':
<a>
<xsl:attribute name="href">
<xsl:value-of select="$link"/>
</xsl:attribute>
<xsl:text> link1 </xsl:text>
</a>
I guess #1 is the easiest, so on the whole, your corrected code now looks like
this:
<xsl:variable name="var1">fichero.xml</xsl:variable>
<xsl:variable name="link">
<xsl:value-of select="concat(substring-before($var1,'.'),'.html')"/>
</xsl:variable>
<a href="{$link}"> link1 </a>
regards,
--
Joris Gillis (http://users.telenet.be/root-jg/me.html)
Fiat W3C in tenebris
--~------------------------------------------------------------------
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>
--~--