2017-07-25 15 views
0
<xsl:when test="conditon = 'value1'"> 
    <typeId>4</typeId> 
</xsl:when> 
<xsl:when test="conditon = 'value2'"> 
    <typeId>4</typeId> 
</xsl:when> 
<xsl:when test="conditon = 'value3'"> 
    <typeId>4</typeId> 
</xsl:when> 
.... 
.... 

私は上記のようなものを持っています。 は、今、私が作成したXMLタグ(TYPEID)の状態を確認したいです。 すなわち、XSLTファイル内の条件以下、だから、XSLTで作成したxml要素の値を取得

<xsl:if test="$typeId = 4"> 
<price>100</price> 
</xsl:if> 

、どのように私が作成したタグに条件の上に使用することができます(TYPEIDが、私は条件をしたい上のタグを作成している上)

以上に他の方法上記のように達成する?

答えて

1

$typeIdは、作成した任意の要素にtypeIdという名前の変数を参照し、ではありません。

あなたができることは、typeIdという変数を定義し、必要な値に設定し、その変数を使用して要素を作成し、条件をチェックインします。

<xsl:variable name="typeId"> 
    <xsl:choose> 
    <xsl:when test="conditon = 'value1'">1</xsl:when> 
    <xsl:when test="conditon = 'value2'">2</xsl:when> 
    <xsl:when test="conditon = 'value4'">4</xsl:when> 
    <xsl:choose> 
</xsl:variable> 

<typeId> 
    <xsl:value-of select="$typeId" /> 
</typeId> 

<xsl:if test="$typeId = 4"> 
    <price>100</price> 
</xsl:if> 

このコードはtypeId変数はそのブロックのスコープ内にローカルになるように、コードの同じブロックにでなければならないことに注意してください。

+0

はい、私は上記のように使うことができますが、私は、変数の型IDを取得するための条件の多くを書き換える必要があります。 はXSLTでアクセス作成したタグを指示する方法はありませんか?だから私は直接その条件を作ることができます。 – Kiran

+0

いいえ、結果ツリーに追加されたものにはアクセスできません。出力する前に変数に格納する必要があります。 –

+0

私は下にいくつかの変数をtrueまたはfalseにするので、既存の条件に変数または何かを置くことはできますか?だから私はその真または偽としてその変数時に条件を作り、そしてもしその真よりすることができます – Kiran

関連する問題