0
在我有一個XML如下(簡化爲便於回答的):XSL:設置XML屬性在根元素取決於多個變量原稿
<root>
<element att1="yes" att2="no" other attributes... />
<element att1="yes" att2="no" other attributes... />
<element att1="no" att2="yes" other attributes... />
<element att1="yes" att2="no" other attributes... />
<element att1="yes" att2="yes" other attributes... />
</root>
我有一個XSL,將檢查是否ATT1和ATT2都是「是」,如果是,請將它們放入轉換後的XML中(使用相似的格式)。
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<root>
<xsl:for-each select="/root/element">
<xsl:variable name="att1" select="@att1"/>
<xsl:variable name="att2" select="@att2"/>
<xsl:if test="$att1 == 'yes'">
<xsl:if test="$att2 == 'yes'">
<!-- print new element with attributes -->
</xsl:if>
</xsl:if>
</xsl:for-each>
</root>
</xsl:template>
</xsl:stylesheet>
我所試圖做的是,因爲如果兩個ATT1和ATT2是「不」,那什麼事都返回不同的是:
<root>
</root>
在這種情況下,我想杜絕屬性根元素,像BlankXML =「Y」,具體如下:
<root BlankXML="Y">
</root>
所以基本上,如果每一個元素的ATT1和ATT2是「否」,通過在根元素此BlankXML屬性。
這是我卡住的地方。在完整的編程語言中,我可能會創建一個計數器變量,並在每次到達打印新XML的部分時遞增計數器變量,最後如果計數器仍爲0,則添加BlankXML元素。但是在XSL中,我不確定如何做到這一點。據我所知,變量更像常量,不能像這樣增加。
有沒有人有任何想法?
謝謝,這很好。我仍然對XSL不熟悉,並且與「完整的」編程語言不太一樣。 – Matt