2017-05-10 124 views
0

我返回的XML具有的图像,都在不同尺寸的多个值。我试图在我的XSL中加载图像,但它总是选择以XML格式返回的最小(第一个)图像,所以它非常像素化。访问XML节点值多张图片

如何根据屏幕的大小让浏览器选择正确的浏览器?因为第一个也可能是一个.ico它是这样的小桌面是非常像素化。

下面是XML数据和XSL文件中的代码。

XSL:

<xsl:for-each select="lfm/tracks/track"> 
     <xsl:sort order="descending" data-type="number" select="playcount"/> 
      <xsl:if test="position() &lt;= 8"> 
       <xsl:value-of select="result"/> 

         <div class="col s3 m3"> 
          <div class="card large"> 
           <div class="card-image"> 
            <img> 
            <xsl:attribute name="src"> 
             <xsl:value-of select="image"/> 
            </xsl:attribute> 
            </img> 

            <span class="card-title"><xsl:value-of select="name"/></span> 
           </div> 
           <div class="card-content"> 
            <p><xsl:value-of select="name"/> 
            </p> 

            <p><xsl:value-of select="artist/name"/> 
            </p> 

            <p> Playcount: 
             <xsl:value-of select="playcount"/> 
            </p> 
           </div> 

           <div class="card-action"> 
            <a href="view_song.html"><p>Link: 
             <xsl:value-of select="url"/> 
            </p></a> 
           </div> 
          </div> 
         </div> 


      </xsl:if> 
     </xsl:for-each> 

XML:

<track> 
     <name>HUMBLE.</name> 
     <duration>0</duration> 
     <playcount>1063735</playcount> 
     <listeners>136852</listeners> 
     <mbid></mbid> 
     <url>https://www.last.fm/music/Kendrick+Lamar/_/HUMBLE.</url> 
     <streamable fulltrack="0">0</streamable> 
     <artist> 
      <name>Kendrick Lamar</name> 
      <mbid>381086ea-f511-4aba-bdf9-71c753dc5077</mbid> 
      <url>https://www.last.fm/music/Kendrick+Lamar</url> 
     </artist> 
     <image size="small">https://lastfm-img2.akamaized.net/i/u/34s/a4a35fcdf62b8a532039012653eeea14.png</image> 
     <image size="medium">https://lastfm-img2.akamaized.net/i/u/64s/a4a35fcdf62b8a532039012653eeea14.png</image> 
     <image size="large">https://lastfm-img2.akamaized.net/i/u/174s/a4a35fcdf62b8a532039012653eeea14.png</image> 
     <image size="extralarge">https://lastfm-img2.akamaized.net/i/u/300x300/a4a35fcdf62b8a532039012653eeea14.png</image> 
</track> 
+1

你是如何使用这个xsl代码片段的?它如何运行? – NMGod

+0

我发现我可以访问不同的图像,如果我像这样的图像下标[4]。 – haydg8

+0

提供更好格式的答案。 – NMGod

回答

0
<xsl:value-of select="image"/> 

image中的XPath将访问所述第一图像元件。

如果您要访问的其他人,你可以使用一个元素的索引像image[3]或更好的,你可以基于它的大小属性,像下面。

<xsl:value-of select="image[@size = 'large']"/> 
0

通过下标与多个图像节点解决: <xsl:value-of select="image[2]"/>