2017-02-15 198 views
0

即使/ Category爲空,選擇語句在test =「./ Category」中也爲正值。XSL選擇不起作用

類別值的值爲<![CDATA []]>如果爲空並且爲<![CDATA [some_code]]>如果已滿。

看起來像CDATA離開「」的價值或類似的東西。

 <xsl:when test="./Category"> 
      <ref type="category"><xsl:value-of select="./Category" /></ref> 
    </xsl:when> 
    <xsl:otherwise> 
     <id_category_default>2</id_category_default> 
    </xsl:otherwise> 

</xsl:choose> 

回答

3

測試test="./Category"僅僅是用於測試你的XML命名Category元素的存在,並沒有考慮到該元素的子節點。

你想測試大概是這樣的(注意:./在這裏沒有必要)

<xsl:when test="Category[normalize-space()]"> 

這將忽略文本組成的無非是空白。如果您認爲存在空格爲「非空」,請嘗試使用此替代方法...

<xsl:when test="Category[. != '']">