我衝過幾個存在的問題,但它們指的是XML中存在的空格。我試圖刪除由於xslt代碼格式而發生的空格。XSLT刪除輸出之間的空格
我有以下XSL代碼應創建一個C文件:
#if (defined(<xsl:value-of select="./@Name"/>_TEST1) || \
defined(<xsl:value-of select="./@Name"/>_TEST2) || \
defined(<xsl:value-of select="./@Name"/>_TEST3) || \
defined(<xsl:value-of select="./@Name"/>_TEST4) || \
defined(<xsl:value-of select="./@Name"/>_TEST5) \
<xsl:if test="CONDITION1">
|| defined(<xsl:value-of select="./@Name"/>_TEST6) || \
defined(<xsl:value-of select="./@Name"/>_TEST7) || \
defined(<xsl:value-of select="./@Name"/>_TEST8)
</xsl:if>
<xsl:if test="CONDITION2">
|| defined(<xsl:value-of select="./@Name"/>_TEST9)
</xsl:if>
)
但與上述結構的輸出是:
#if (defined(NAME_TEST1) || \
defined(NAME_TEST2) || \
defined(NAME_TEST3) || \
defined(NAME_TEST4) || \
defined(NAME_TEST5) \
|| defined(NAME_TEST6) || \
defined(NAME_TEST7) || \
defined(NAME_TEST8)
)
這給C的誤差。 所需的輸出是:
#if (defined(NAME_TEST1) || \
defined(NAME_TEST2) || \
defined(NAME_TEST3) || \
defined(NAME_TEST4) || \
defined(NAME_TEST5) \
|| defined(NAME_TEST6) || \
defined(NAME_TEST7) || \
defined(NAME_TEST8))
UPDATE1
我設法使它工作就是這樣,雖然我真的不明白爲什麼它的工作原理。有人能啓發我嗎?
#if (defined(<xsl:value-of select="./@Name"/>_TEST1) || \
defined(<xsl:value-of select="./@Name"/>_TEST2) || \
defined(<xsl:value-of select="./@Name"/>_TEST3) || \
defined(<xsl:value-of select="./@Name"/>_TEST4) || \
defined(<xsl:value-of select="./@Name"/>_TEST5) \ <xsl:text></xsl:text>
<xsl:if test="CONDITION1">
|| defined(<xsl:value-of select="./@Name"/>_TEST6) || \
defined(<xsl:value-of select="./@Name"/>_TEST7) || \
defined(<xsl:value-of select="./@Name"/>_TEST8) <xsl:text></xsl:text>
</xsl:if>
<xsl:if test="CONDITION2">
|| defined(<xsl:value-of select="./@Name"/>_TEST9) <xsl:text></xsl:text>
</xsl:if>
<xsl:text>)</xsl:text>
'xsl:strip-space'也許? –
@KerrekSB'xsl:strip-space'元素用於定義要刪除空白空間的元素。我的元素中沒有空白區,所以我認爲這不會有幫助。 –
@AlexandruCimpanu請發佈一個**可重現的例子 - 請參閱:[mcve]。 –