如何使用XSLT以HTML格式显示图像?

时间:2016-10-12 02:56:10

标签: html xml image xslt

我一直在尝试使用XSLT输出我的XML所拥有的数据。设置的要求之一是在XML文件中包含图像文件:

<room id="001">
    <capacity>2 Adults</capacity>
    <room_name>King Double</room_name>
    <cost_st>$1700</cost_st>
    <cost_lt>$3400</cost_lt>
    <loc>Ground Floor</loc>
    <info>&in2;</info>
    <feat>&ft2;</feat>
    <deal>&pk2;</deal>
    <photo>kingdouble.jpg</photo>
</room>

虽然我可以在标签之间抓取字符串,但我似乎无法显示图像文件。我在这里写错了,还是在XSLT中出错?

编辑: 这是我的XSLT的一部分:

    <tr border="2" bgcolor="#ffebcd">
        <td> <xsl:value-of select="room_name"/> </td>
        <td> <xsl:value-of select="capacity"/> </td>
        <td> <xsl:value-of select="info"/> </td>
        <td> <xsl:value-of select="loc"/> </td>
        <td> <xsl:value-of select="feat"/> </td>
        <td> <xsl:value-of select="cost_st"/> </td>
        <td> <xsl:value-of select="cost_lt"/> </td>
    </tr>

</xsl:template>

我尝试做的是显示图像文件而不指定特定图像,因为XSLT文件将用作两个单独XML页面的模板。

1 个答案:

答案 0 :(得分:3)

假设您的XSLT片段运行正常,您可以添加另一个td,其中包含对图像的引用,如下所示:

<td><img src="{photo}"/></td>

此处{photo}attribute value template

不工作?

如果文件位于HTML页面以外的目录中,则需要构建相对路径,例如

<td><img src="images/{photo}"/></td>

或绝对路径,例如

<td><img src="http://example.com/some/path/to/images/{photo}"/></td>

仍然无效?

要调试图像路径,请先手动编写HTML,并确保如何编写绝对或相对@src路径的心智模型是正确的。然后,检查由XSLT生成的HTML源,以检查路径是否与经过验证的手工制作的路径匹配。