XSLT转换将无法正确输出HTML img标记

时间:2015-07-28 21:57:30

标签: html xml xslt

我正在尝试创建一个HTML页面,它是一个建筑物的图像地图,其中包含人物的名称和从XML文件中获取的图片,并放置在特定坐标(由CSS定义)的地图上。这是XSL文件:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/dataset/custodians">
        <html>
        <head>

        <title>
        </title>

        </head>
        <body>

        <xsl:for-each select='custodian'>
        <p>
           <xsl:attribute name="id"><xsl:value-of select="location"/></xsl:attribute>
           <xsl:attribute name="class">custodian</xsl:attribute>
           <br/>
            <div>
            <xsl:attribute name="class">hover_img</xsl:attribute>
                 <a>
                  <xsl:attribute name="href">#</xsl:attribute>
                 <span>
                   <img>
                        <xsl:attribute name="src"> <xsl:value-of select="pic"> </xsl:value-of> </xsl:attribute>
                    </img>
                 </span></a>
            </div>
           <br/>
           <xsl:value-of select="name"></xsl:value-of>
           <br/>
           <xsl:value-of select="location_string"></xsl:value-of>
           <br/>
           <xsl:value-of select="phone"></xsl:value-of>
        </p>

        </xsl:for-each>

        </body>
        </html>
    </xsl:template>
</xsl:stylesheet>

我针对此XML文件运行XSL文件:

<dataset>   
<custodians>
    <custodian>
      <name> Person 1 </name>
      <location>location1_004</location>
      <location_string>1-004</location_string>
      <pic>H:\path\to\image1.jpg</pic>
      <phone>861-6969</phone>
    </custodian>
    <custodian>
      <name> Person 2 </name>
      <location>location1_027</location>
      <location_string>1-027</location_string>
      <pic>H:\path\to\image2.jpg</pic>
      <phone>861-6868</phone>
    </custodian> 
 </custodians>
</dataset>

我得到的输出显示屏幕侧面的名称,而不是在地图上的正确位置。在我开始尝试将图像添加到XSL文件之前,一切正常。

我在XSL文件中做错了什么?

0 个答案:

没有答案