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