我需要创建一个包含在锚点标记中的图像,其中xml和xslt将显示在iframe中
我的XML看起来像
<cars>
<car>
<name>Ferrari</name>
<image>http://www.bestdrives.org/ferrari-cars/ferrari-fiorano.jpg</image>
<link>http://www.ferrari.com/English/Pages/home.aspx</link>
</car>
</cars>
我需要将名称和图像包装在锚标记中
我的xslt看起来像
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Edited by XMLSpy® -->
<html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
<body>
<xsl:for-each select="cars/car">
<xsl:template match="car">
<xsl:attribute name="href" select="link"/>
<xsl:value-of select="name"/>
<img>
</html> <xsl:attribute name="src" select="image"/>
</img>
</xsl:template>
</xsl:for-each>
</body>
答案 0 :(得分:0)
<xsl:template match="car">
<a>
<xsl:attribute name="href" select="link"/>
<xsl:value-of select="name"/>
<img>
<xsl:attribute name="src" select="image"/>
</img>
</a>
</xsl:template>
答案 1 :(得分:0)
您提供的XSLT格式不正确(由于某种原因,结束</html>
标记已在<img>
元素内部结束,<?xml
声明必须是文件中的第一个事物,前面没有前导空格)。它也不是有效的XSLT - 您不能在template
中放置for-each
,并且在XSLT 1.0中不能在select
上使用<xsl:attribute>
(尽管您可以在XSLT 2.0)。怎么样:
<?xml version="1.0" encoding="ISO-8859-1"?>
<html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
<body>
<xsl:for-each select="cars/car">
<a href="{link}">
<xsl:value-of select="name"/>
<img src="{image}" />
</a>
</xsl:for-each>
</body>
</html>
href="{link}"
符号称为attribute value template,它是<xsl:attribute name="href"><xsl:value-of select="link" /></xsl:attribute>