我試圖改變一個xml文檔,看起來像這樣:如何設置全局變量的幾個條件下,XSL
<CData>
<Description>whatever</Description>
<Property>
<SetValue>123</SetValue>
<Description>whatever</Description>
<DefaultValue>321</DefaultValue>
</Property>
<Property>
<SetValue>999</SetValue>
<Description>whatever</Description>
<DefaultValue>721</DefaultValue>
</Property>
</CData>
每個CDATA標記是一個表和財產標籤代表一個錶行。現在我需要檢查每個CDate標籤,如果單個Property標籤有一個Default和一個SetValue,並且它們是不同的。這背後的原因是我只想要DefaultValue和SetValue不同的表。這裏是一個做工精細的檢查:
<xsl:for-each select="CData">
<xsl:for-each select="Property">
<xsl:if test="SetValue">
<xsl:if test="SetValue/text()!=''">
<xsl:if test="DefaultValue">
<xsl:if test="SetValue!=DefaultValue">
//SET a Value
</xsl:if
</xsl:if>
<xsl:if test="not(DefaultValue)">
//SET a VALUE
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:for-each>
在此檢查我需要的,如果條件爲真,這for-each循環後,我想用if標籤檢查變量,它被設置變量如果它被設置,我想打印一張表。我現在唯一的問題是我不知道如何在循環中設置一個變量,我可以像全局變量一樣使用它。
'的 ' 的工作原理,但有時我有隻是有一個的情況下屬性標記中的SetValue標記,並且沒有DefaultValue標記。在這種情況下的表應打印,以及因爲一個的SetValue是differtent到默認值,因爲它不存在.. –
user2435480
'的 '! –
user2435480
@ user2435480'[DefaultValue or not(DefaultValue)]'是多餘的,因爲它永遠是真的。我用另一個更簡潔的建議編輯了我的答案。 –