2

真か偽かをチェックして特定のアクションを実行するための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のみを表示し、手袋は表示しません。何が問題であるかわかりません。

4

2 に答える 2

1

これがXSLTからの直接のコピー/貼り付けであると仮定すると、いくつかのエラーがあるので、実際に何かが得られることに驚いています。

4つの<input>タグすべてにクロージャーがないため、各タグの最後の部分をから>に変更し/>ます...たとえば...

<input type="checkbox" disabled="disabled" />

次に、<xsl:when test1=...どちらが間違っているかがわかります。それはそうあるべきです<xsl:when test=...(の欠如に注意してください1)...

 <xsl:when test="$glo1= 'false'">
于 2012-10-01T12:16:45.957 に答える
1

提供されたXSLTコードには多くの明らかなエラーがあり、準拠するXSLTプロセッサー(またはXMLパーサー)はエラーを発生させ、出力をまったく生成しないはずです。

  1. 要素は閉じられていません-これは、スタイルシート全体の<input>整形式でないXMLドキュメントを意味します。

  2. <xsl:when>命令に名前付きの属性を設定することはできません。"test1"「test」属性のみが許可されます。

これらの2つのエラーを修正すると、変換は次のようになります。

<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"/>
于 2012-10-01T12:17:44.537 に答える