我有,我相信,这是一个有趣的情况。 我有一个车库XML并正在将它(使用XSL)转换为HTML。
CAR XML:
<car>
<licensePlate>Car001</licensePlate>
<feature>
<color>Blue</color>
<fuel>Unleaded</fuel>
<feature>
</car>
我只想打印<color>
&amp; <fuel>
但希望在HTML链接中将<licensePlate>
设置为href。
CAR XSL:
<xsl:template match="car">
<tr>
<xsl:apply-templates select="licensePlate"/>
<xsl:apply-templates select="feature"/>
</tr>
</xsl:template>
<xsl:template match="feature">
<td>
<a href="{preceding-sibling::licensePlate/text()}>
<xsl:apply-templates select="color"/>
</a>
</td>
<td><xsl:apply-templates select="fuel"/></td>
</xsl:template>
这使我能够实现将标记设置为href值的目标。
但是出现问题... licensePlate的所有值都会打印到屏幕上。
有人可以推荐如何防止它打印到屏幕上吗?
我试过评论<xsl:apply-templates select="licensePlate"/>
,但我认为这会影响preceeding-sibling::
语句,因为我收到错误
尝试应用CSS display:none
时,我也收到了此错误。
谢谢你的时间和耐心, 卢卡斯
答案 0 :(得分:1)
你应该评论<xsl:apply-templates select="licensePlate"/>
。
如果你正确地评论它,它可能不是错误的原因。
此外:
<a href="{preceding-sibling::licensePlate/text()}>
&lt; - yuikes!
<a href="{../licensePlate}>
!
答案 1 :(得分:0)
<xsl:template match="car">
<tr>
<xsl:apply-templates select="feature" />
</tr>
</xsl:template>
<xsl:template match="feature">
<td>
<a href="{../licensePlate}">
<xsl:value-of select="color" />
</a>
</td>
<td>
<xsl:value-of select="fuel" />
</td>
</xsl:template>
会产生:
<tr>
<td>
<a href="Car001">Blue</a>
</td>
<td>Unleaded</td>
</tr>
答案 2 :(得分:0)
这是一种方法。我假设你已经完成了颜色和燃料的模板。
<xsl:template match="car">
<tr>
<xsl:apply-templates select="feature"/>
</tr>
</xsl:template>
<xsl:template match="feature">
<td>
<a>
<xsl:param name="href">
<xsl:value-of select="../licensePlate"/>
</xsl:param>
<xsl:apply-templates select="color"/>
</a>
</td>
<td>
<xsl:apply-templates select="fuel"/>
</td>
</xsl:template>