2017-02-15 99 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[. != '']">