2013-07-09 56 views
0

我需要创建包裹在与XML和XSLT锚标记,将显示在iframe图像的锚标记XML和XSLT

我的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

你能实际使用为您的IFrame显示HTML吗?特别是,您如何将XSLT应用于您的XML? –

+0

只需引用XML文件中的XSLT文件?如果我转到XSLT,那么我可以看到样式(显然没有内容),但是如果我打开XML文件或通过iframe将其引用为原始XML。 –

回答

0

像THI S' XSLT:

<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> 
+0

这不适合我这只是拉出unstyled XML是我的页面布局正确的病态更新原始问题 –

0

您提供的XSLT没有良好的XML(收盘</html>标签已经结束了因某种原因<img>元素中,和<?xml声明必须是第一个件事在前面没有前导空格的文件中)。它也是无效的XSLT - 您不能在for-each中放入template,并且在XSLT 1.0中您不能在<xsl:attribute>上使用select(虽然您可以在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>

+0

不是xml仍然进入iframe unstyled –

+0

@StephenRomero你如何从XML中引用XSLT?你是否使用了'<?xml-stylesheet?>处理指令并期待浏览器做这些样式,或者你是否使用了服务器端技术来进行转换(如果是这样的话)? –