分配动态网址

时间:2017-12-12 19:36:08

标签: xslt

我是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代码。

1 个答案:

答案 0 :(得分:0)

由于您没有提供任何输入数据,我可以建议我的例子。 在我的情况下,所需的图像位于路径 D:/ images 中,如下所示:

enter image description here

因此,要将图像添加到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>

  • 在浏览器中打开XML( input.xml )文件时的结果:

enter image description here

请注意! input.xml - 与 photo.xsl 位于同一文件夹中。

希望它对您的案件有所帮助。