我是XSLT语言的新手,我正在尝试编写代码,将动态URL分配给我的列表中的Photo字段。我的列表包含所有员工的FirstName,LastName和Photo字段,Photos位于文件夹中(" file:// folder / subfolder / LastName,FirstName.jpg)。基于FirstName和LastName,相应的照片应该动态添加到Photo Field。
我试过的代码:
<xsl:template match="udt:Photo">
<xsl:for-each select="dnnGridItem">
<xsl:value-of select="udt:LastName" />
<xsl:value-of select="udt:FirstName" />
</xsl:for-each>
<img border="0" alt="delete">
<xsl:attribute name="src">
<xsl:text>file://folder/subfolder</xsl:text>
<xsl:value-of select="file://foilder/subfoilder/?{LastName}, {FirstName}.jpg" />
<xsl:text>.jpg</xsl:text>
</xsl:attribute>
</img>
</xsl:template>
任何人都可以帮助我使用XSL代码。
答案 0 :(得分:0)
由于您没有提供任何输入数据,我可以建议我的例子。 在我的情况下,所需的图像位于路径 D:/ images 中,如下所示:
因此,要将图像添加到HTML,我正在使用下一个XSL文件( photo.xsl ),如下所示:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" />
<xsl:template match="/Photo">
<xsl:variable name="img.path" select="'file:///D:/images/'"/>
<html>
<body>
<xsl:for-each select="dnnGridItem">
<xsl:variable name="img.name" select="concat(LastName, ', ', FirstName)"/>
<h2>
<xsl:value-of select="$img.name"/>
</h2>
<img border="0" alt="delete">
<xsl:attribute name="src">
<xsl:value-of select="concat($img.path, $img.name, '.jpg')"/>
</xsl:attribute>
</img>
<br/>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
然后将LastName和FirstName动态添加<?xml-stylesheet type="text/xsl" href="photo.xsl"?>
到输入XML文件( input.xml ),如下所示:
<?xml-stylesheet type="text/xsl" href="photo.xsl"?>
<Photo>
<dnnGridItem>
<FirstName>John</FirstName>
<LastName>Smith</LastName>
</dnnGridItem>
<dnnGridItem>
<FirstName>Kate</FirstName>
<LastName>Johnson</LastName>
</dnnGridItem>
</Photo>
结果:
<html>
<body>
<h2>Smith, John</h2>
<img border="0" alt="delete" src="file:///D:/images/Smith, John.jpg"><br>
<h2>Johnson, Kate</h2>
<img border="0" alt="delete" src="file:///D:/images/Johnson, Kate.jpg"><br>
</body>
</html>
请注意! input.xml - 与 photo.xsl 位于同一文件夹中。
希望它对您的案件有所帮助。