<errors>
ノードが含まれている場合と含まれていない場合があります。私のXSLファイルでParamと@attributeを使用して条件付きXMLを表示する
<xsl:template name="FieldError" mode="user">
<xsl:param name="attribute" />
<xsl:if test="errors[@attribute=$attribute]">
<span class="form-error"><xsl:value-of select="errors[@attribute=$attribute]" /></span>
</xsl:if>
</xsl:template>
:私はFieldErrorテンプレートを持っている
<errors>
<first_name>Not allowed to be BigBoy</first_name>
<email>Required</email>
</errors>
:エラーとエラー通知
だから、この例は次のようになりますが存在するために任意のフィールド名を含みますフィールド名の横にエラー通知を表示しようとしています。したがって、各フォームフィールドの後にFieldErrorテンプレートを呼び出します。
first_nameフィールドの後:
<xsl:call-template name="FieldError" mode="planner_user">
<xsl:with-param name="attribute">first_name</xsl:with-param></xsl:call-template>
電子メールフィールドの後:
<xsl:call-template name="FieldError" mode="user">
<xsl:with-param name="attribute">email</xsl:with-param></xsl:call-template>
私はこの前に働いていたと確信している、と私はちょうど私が間違ってこの時間
'email'要素は' errors'要素の子要素ではなく属性です。したがって、属性を選択する '@'を使うことは意味をなさない。特定の子要素が存在することを確認するには、 'test =" errors/* [local-name()= $ param] "' '(' param'から 'param'にパラメータ名を変更しました名前の混乱)。 –
さらに詳しい例を投稿できますか?あなたが存在をチェックしたい要素の名前を知っていれば、単純に ''を実行することができます。そうでない場合は、**キー**を使用して要素を動的に指定します。 –