0

大家好,我还有一个关于 XML 和 XSLT 的问题。我只是想知道如何从 xml 文档中分配一个 URL 链接以与动态创建的每个图像相关联。我使用 for-each 循环显示了每个图像,我使用 position() 方法为每个图像分配了一个 ID。那么有没有办法将url分配给每个图像的id?无论如何都找不到这样做。希望这是有道理的。干杯。

xslt 如下。

  <xsl:for-each select="cars/car-types">

  <div id = "car_types">
    <h5 id = "Model{position()}"> <xsl:value-of select="name"/> </h5>


 <div id ="imagelist">   
 <img src="{image}" id ="carType{position()}"> //sets the car type with an id of "carType1" and increments.

  <xsl:attribute name="src">
    <xsl:value-of select="image"/>

  </xsl:attribute>
</img>
 </div>
 </div>

    </xsl:for-each>

XML如下,我确实简化了xml,因为发布整个内容相当长。

<cars>
    <car>
            <name>BMW</name>
            <image>bmw.gif</image>
            <link>http://something</link>
    </car>
    <car>
            <name>Ford</name>
            <image>ford.jpg</image>
            <link>http://something</link>
    </car>
</cars>

我已经成功地输出了图像,下一步是为每个汽车图像添加链接。(单击图像时,它会将您带到另一个包含该车辆信息的 html 页面。)

这是我期望的 HTML 输出

 </head>
    <body>

    <h5 id="Model1">BMW</h5>
    <div id="imagelist">
    <img src="http://www.bmw.com/_common/highend/templates/individual/experience/mseries/m3coupe/2007/game/image/bmw_m3_coupe_background.jpg id="carType1">

<a href="http://www.bmw.com/" target="_blank"></a> <!--This is the href link I want to add from the XML doc to each image. -->
    </div>

    <h5 id="Model2">Ford</h5>
    <div id="imagelist">
    <img src="http://http://cinemuck.com/wp-content/uploads/2013/04/ford2.jpg" id="carType2">
    <a href="http://www.ford.co.uk/" target="_blank"></a> 
    </div>

    <h5 id="Model3">Volvo</h5>
    <div id="imagelist">
    <img src="http://http://www.heritage-motors.co.uk/userimages/volvo2.jpg" id="carType3">
    <a href="http://www.volvo.com/" target="_blank"></a> 
    </div>

    <h5 id="Model4">Jaguar</h5>
    <div id="imagelist">
    <img src="http://http://autocarimages.com/images/Jaguar%20car%20images/1.jpg" id="carType4">
    <a href="http://www.jaguar.co.uk/" target="_blank"></a> 

    </div>
4

1 回答 1

1

如果你为每张汽车图片添加一个链接,你可以为你的img标签添加一个a标签,并以类似的方式为其构造href属性

试试这个 XSLT

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:output method="xml" indent="yes"/>
   <xsl:template match="/">
      <xsl:for-each select="cars/car">
         <div id="car_types">
            <h5 id="Model{position()}">
               <xsl:value-of select="name"/>
            </h5>
            <div id="imagelist">
               <img src="{image}" id="carType{position()}"/>
               <a href="{link}" target="_blank">Click here</a>
            </div>
         </div>
      </xsl:for-each>
   </xsl:template>
</xsl:stylesheet>

<xsl:attribute name="src">请注意,当您已经使用属性值模板为img构建src元素时,XSLT 中不需要额外的内容。

于 2013-09-05T21:46:10.933 回答