2011-11-25 21 views
-1

これは私のxmlファイルです。私はxsl xml解析、変換、属性

<artist rank="1"> 
<name>Dream Theater</name> 
<playcount>1438</playcount> 
<mbid>28503ab7-8bf2-4666-a7bd-2644bfc7cb1d</mbid> 
<url>http://www.last.fm/music/Dream+Theater</url> 
<streamable>1</streamable> 
<image size="small">http://userserve-ak.last.fm/serve/34/5535004.jpg</image> 
<image size="medium">http://userserve-ak.last.fm/serve/64/5535004.jpg</image> 
<image size="large">http://userserve-ak.last.fm/serve/126/5535004.jpg</image> 
</artist> 

<artist rank="2"> 
<name>Miles Davis</name> 
<playcount>748</playcount> 
<mbid>561d854a-6a28-4aa7-8c99-323e6ce46c2a</mbid> 
<url>http://www.last.fm/music/Miles+Davis</url> 
<streamable>1</streamable> 
<image size="small">http://userserve-ak.last.fm/serve/34/4971157.jpg</image> 
<image size="medium">http://userserve-ak.last.fm/serve/64/4971157.jpg</image> 
<image size="large">http://userserve-ak.last.fm/serve/126/4971157.jpg</image> 
</artist> 

<artist rank="3"> 
<name>Dire Straits</name> 
<playcount>732</playcount> 
<mbid>614e3804-7d34-41ba-857f-811bad7c2b7a</mbid> 
<url>http://www.last.fm/music/Dire+Straits</url> 
<streamable>1</streamable> 
<image size="small">http://userserve-ak.last.fm/serve/34/135149.jpg</image> 
<image size="medium">http://userserve-ak.last.fm/serve/64/135149.jpg</image> 
<image size="large">http://userserve-ak.last.fm/serve/126/135149.jpg</image> 
</artist> 

ブラウザreaderable情報にそれらを転送するために、XSLTを使用したいとここに私のXSLファイルの私のソリューションです:

​​

が、uはアーティストがランク1,2,3を持って見ることができますように。 ..もし私がvalue-of select = "image"のようにすれば...それはxmlファイルから読み込んだ最初の画像しか得ることができません...どうすれば各アーティストのrank1,2,3を適切なxslに転送できますか?

+0

を生成します。 –

答えて

1

すべての画像を取得するには、<xsl:for-each select='image'>を追加する必要があります。そうしないと、最初の一致が得られません。

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes" /> 

<xsl:template match="/"> 
<table> 
<xsl:for-each select='/xml/artist'> 
<xsl:sort order="ascending" data-type="number" select="@rank"/> 
<tr> 
    <td><xsl:value-of select='name'/></td> 
    <xsl:for-each select='image'> 
     <td><xsl:value-of select='.'/></td> 
    </xsl:for-each> 
</tr> 
</xsl:for-each> 
</table> 

</xsl:template> 

</xsl:stylesheet> 

チュートリアルから働いていない場合は、[W3Schoolsの](http://www.w3schools.com/xsl/)してみてください

<table> 
<tr> 
<td>Dream Theater</td> 
<td>http://userserve-ak.last.fm/serve/34/5535004.jpg</td> 
<td>http://userserve-ak.last.fm/serve/64/5535004.jpg</td> 
<td>http://userserve-ak.last.fm/serve/126/5535004.jpg</td> 
</tr> 
<tr> 
<td>Miles Davis</td> 
<td>http://userserve-ak.last.fm/serve/34/4971157.jpg</td> 
<td>http://userserve-ak.last.fm/serve/64/4971157.jpg</td> 
<td>http://userserve-ak.last.fm/serve/126/4971157.jpg</td> 
</tr> 
<tr> 
<td>Dire Straits</td> 
<td>http://userserve-ak.last.fm/serve/34/135149.jpg</td> 
<td>http://userserve-ak.last.fm/serve/64/135149.jpg</td> 
<td>http://userserve-ak.last.fm/serve/126/135149.jpg</td> 
</tr> 
</table> 
+0

thx、問題解決済み:) – sefirosu

関連する問題