尝试xsl,我遇到了一个不会消失的问题。我的样式表代码是这个
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="Fighter">
<br/>
<br/>
<br/>
<b>Name </b> <xsl:value-of select="name"/> <br/>
<b>AKA</b> <xsl:value-of select="nickname"/> <br/>
<b>Age</b> <xsl:value-of select="age"/> <br/>
<b>Height</b> <xsl:value-of select="height"/> <br/>
<b>Division</b> <xsl:value-of select="division"/> <br/>
<b>Reach</b> <xsl:value-of select="reach"/> <br/>
<b>Stance</b> <xsl:value-of select="stance"/> <br/>
<b>Nationality</b> <xsl:value-of select="nationality"/> <br/>
<b>Training Camp</b> <xsl:value-of select="camp"/> <br/>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="bout">
<table width="100%" border="1">
<tr>
<td width ="10%"><xsl:value-of select="result"/></td>
<td width ="10%"><xsl:value-of select="opponent"/></td>
<td width ="10%"><xsl:value-of select="waywon"/></td>
<td width ="10%"><xsl:value-of select="round"/></td>
<td width ="10%"><xsl:value-of select="event"/></td>
<td width ="10%"><xsl:value-of select="date"/></td>
<td width ="10%"><xsl:value-of select="location"/></td>
<td width ="10%"><xsl:value-of select="notes"/></td>
</tr>
</table>
</xsl:template>
<xsl:template match="/">
<h1>LIST OF UFC FIGHTERS</h1>
<xsl:apply-templates/>
</xsl:template>
</xsl:transform>
我想得到一些关于被调动的战斗机的信息,然后显示战斗记录如下。但是它会继续添加额外的行,如下所示。
姓名George St Pierre
又AKA GSP
年龄30岁身高5英尺10 在分部重量级中达到76的立场 正统的国籍加拿大
身体训练营三星健身房
George St Pierre GSP 30 5英尺10英寸重量级76加拿大东正教 三星健身房
为什么此信息打印两次?我确信这可能很简单,但这让我非常沮丧。
答案 0 :(得分:1)
因为你在模板战斗机中有apply-templates而没有名称,昵称,年龄等的模板 - 所以XSL只复制这个节点中满足的文本 - 把它放在XSL的末尾以避免这种情况并在那里保留apply-templates
<xsl:template match="*"></xsl:template>
这将为任何未由其他模板
处理的标记添加空字符串答案 1 :(得分:1)
试试这个
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="Fighter">
<br/>
<br/>
<br/>
<b>Name </b> <xsl:value-of select="name"/> <br/>
<b>AKA</b> <xsl:value-of select="nickname"/> <br/>
<b>Age</b> <xsl:value-of select="age"/> <br/>
<b>Height</b> <xsl:value-of select="height"/> <br/>
<b>Division</b> <xsl:value-of select="division"/> <br/>
<b>Reach</b> <xsl:value-of select="reach"/> <br/>
<b>Stance</b> <xsl:value-of select="stance"/> <br/>
<b>Nationality</b> <xsl:value-of select="nationality"/> <br/>
<b>Training Camp</b> <xsl:value-of select="camp"/> <br/>
</xsl:template>
<xsl:template match="bout">
<table width="100%" border="1">
<tr>
<td width ="10%"><xsl:value-of select="result"/></td>
<td width ="10%"><xsl:value-of select="opponent"/></td>
<td width ="10%"><xsl:value-of select="waywon"/></td>
<td width ="10%"><xsl:value-of select="round"/></td>
<td width ="10%"><xsl:value-of select="event"/></td>
<td width ="10%"><xsl:value-of select="date"/></td>
<td width ="10%"><xsl:value-of select="location"/></td>
<td width ="10%"><xsl:value-of select="notes"/></td>
</tr>
</table>
</xsl:template>
<xsl:template match="/">
<h1>LIST OF UFC FIGHTERS</h1>
<xsl:apply-templates select="Fighter"/>
<xsl:apply-templates select="bout"/>
</xsl:template>
</xsl:transform>