我有2个条件来检查是或否,并采取某种行动。
这是我的代码。
<xsl:variable name="hac" select="Hac1"/>
<xsl:choose>
<xsl:when test="$hac= 'false'">
<p style="display:inline">Hac1: </p><input type="checkbox" disabled="disabled" >
</xsl:when>
<xsl:otherwise>
<p>HACCP: </p><input type="checkbox" disabled="disabled" checked="checked">
</xsl:otherwise>
</xsl:choose>
<xsl:variable name="glo1" select="Gloves"/>
<xsl:choose>
<xsl:when test1="$glo1= 'false'">
<p style="display:inline">Gloves: </p><input type="checkbox" disabled="disabled" >
</xsl:when>
<xsl:otherwise>
<p>Gloves: </p><input type="checkbox" disabled="disabled" checked="checked">
</xsl:otherwise>
</xsl:choose>
这只显示我的Hac1而不是我的手套,我不知道这是什么问题。
答案 0 :(得分:1)
假设这是从XSLT直接复制/粘贴,你有几个错误,所以我很惊讶你实际上得到了任何东西。
所有四个<input>
标记都缺少其关闭,因此请在每个标记上将最终部分从>
更改为/>
...例如......
<input type="checkbox" disabled="disabled" />
然后你有<xsl:when test1=...
这是不正确的。它应该是<xsl:when test=...
(请注意缺少1
)...
<xsl:when test="$glo1= 'false'">
答案 1 :(得分:1)
提供的XSLT代码有许多明显的错误,任何兼容的XSLT处理器(甚至是XML解析器)都应该引发错误而根本不产生任何输出:
<input>
元素未关闭 - 这会影响整个样式表格式不正确的XML文档。
<xsl:when>
指令不能包含名为"test1"
的属性 - 只允许使用“test”属性。
当我纠正这两个错误时,转换现在是:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/*">
<xsl:variable name="hac" select="Hac1"/>
<xsl:choose>
<xsl:when test="$hac= 'false'">
<p style="display:inline">Hac1: </p><input type="checkbox" disabled="disabled" />
</xsl:when>
<xsl:otherwise>
<p>HACCP: </p><input type="checkbox" disabled="disabled" checked="checked"/>
</xsl:otherwise>
</xsl:choose>
<xsl:variable name="glo1" select="Gloves"/>
<xsl:choose>
<xsl:when test="$glo1= 'false'">
<p style="display:inline">Gloves: </p><input type="checkbox" disabled="disabled" />
</xsl:when>
<xsl:otherwise>
<p>Gloves: </p><input type="checkbox" disabled="disabled" checked="checked"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
,它会产生看似正常的结果。
在此XML文档上应用时(没有提供!):
<t>
<Hac1>true</Hac1>
<Floves>false</Floves>
</t>
结果是:
<p>HACCP: </p>
<input type="checkbox" disabled="disabled" checked="checked"/>
<p>Gloves: </p>
<input type="checkbox" disabled="disabled" checked="checked"/>