0
특정 순서로 속성을 가져와 특정 이름 집합에 루프를 사용하고 있습니다. @ $ attribute 또는 @와 같은 것을하고 싶습니다. 그러나 다만 사용. 내가 원하는 것 인 속성의 가치가 아니라 이름 자체를 제공합니다.변수를 속성 이름으로 사용하십시오.
기본적으로 각 행에 대해 "제목"및 "아티스트"라고 말하면서 실제 제목과 아티스트를 원합니다.
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