2017-07-25 14 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

是的,我可以像上面那样使用,但是我必须重写很多条件才能获得变量typeId。 是不是有什么办法可以在xslt中直接创建标签?所以我可以直接对此作出条件。 – Kiran

+0

不,您无法访问已添加到结果树中的内容。在输出之前,您需要先将其存储在一个变量中。 –

+0

我可以把任何变量或任何已经存在的条件,因为我会得到一些变量真或假的底部。所以我可以把这个变量作为它的真或假,并且如果它的真实性比 – Kiran