1

定義した変数が特定の文字列と等しくない場合、値を取得したいと考えています。ここでは、変数 'name' 、 'address' 、および 'city' の値を、それぞれ 'Tom'、'Street'、および 'CityStreet' と等しくない場合、"-" で区切って取得します。それは可能ですか?

xsl:attribute name='person'>
        <xsl:value-of separator="-" select=
    "($name, $address,
     $city)" />
        </xsl:attribute> 
4

2 に答える 2

1

使用:

<xsl:if test=
  "not($name eq 'Tom' and $address eq 'Street' and $city eq 'CityStreet')">
  <xsl:attribute name="person">
    <xsl:value-of separator="-" select=
      "($name[. ne 'Tom'], $address[. ne 'Street'], $city[. ne 'CityStreet'])"/>
  </xsl:attribute>
</xsl:if>
于 2012-07-04T01:50:20.457 に答える
1

変数に述語を使用できます。

<xsl:attribute name='person'>
    <xsl:value-of separator="-" select="($name[.!='Tom'], $address[.!='Street'],$city[.!='CityStreet'])"/>          
</xsl:attribute>

または、空の属性が必要ない場合は次のようにします。

<xsl:if test="$name != 'Tom' and 
    $address != 'Street' and 
    $city != 'CityStreet'">
    <xsl:attribute name="person">
        <xsl:value-of separator="-" select="($name[.!='Tom'], $address[.!='Street'],$city[.!='CityStreet'])"/>
    </xsl:attribute>
</xsl:if>
于 2012-07-03T19:45:59.803 に答える