0
特定の順序で属性を取得する必要があるため、特定の一連の名前に対してループを使用しています。 @ $属性や@のようなものをしたい。ただ使用しています。私は自分の名前を与えてくれるのであって、私が欲しい属性の価値ではありません。変数を属性名として使用する
基本的に、各行に「タイトル」と「アーティスト」と言うのではなく、実際のタイトルとアーティストが必要です。
hello.xml:
<?xml version="1.0" encoding="UTF-8"?>
<results>
<r title="Empire Burlesque" artist="Bob Dylan" />
<r title="Hide your heart" artist="Bonnie Tyler" />
<r title="Greatest Hits" artist="Dolly Parton" />
</results>
hello.xsl:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template name="boxNames"> <!-- not used as template -->
<name>title</name>
<name>artist</name>
</xsl:template>
<xsl:template match="/">
<xsl:variable name="boxNames" select="document('')/xsl:stylesheet/xsl:template[@name='boxNames']/name" />
<html>
<body>
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<xsl:for-each select="$boxNames">
<th style="text-align:left"><xsl:value-of select="." /></th>
</xsl:for-each>
</tr>
<xsl:for-each select="results/r">
<tr>
<xsl:for-each select="$boxNames">
<td><xsl:value-of select="."/></td>
</xsl:for-each>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
出力:あなたは、単にの順番をハードコーディングすることはできませんなぜ
<html>
<body>
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th style="text-align:left">title</th>
<th style="text-align:left">artist</th>
</tr>
<tr>
<td>title</td>
<td>artist</td>
</tr>
<tr>
<td>title</td>
<td>artist</td>
</tr>
<tr>
<td>title</td>
<td>artist</td>
</tr>
</table>
</body>
</html>Execution time: 88.941623ms