2014-04-22 113 views
1

我想在不填充文本的情況下使表格不可見。使/在XML/XSL中顯示

這裏是我的XML:

<weitereAnmerkungen> 
    <table> 
     <thead> 
      <tr> 
      <th>Weitere Anmerkungen</th> 
     </tr> 
     </thead>   
     <tbody> 
      <tr><td>Gehhilfe, Rollstuhl adhudsha dfuahsf sadfasd fas f asdf asd fas f s sd fsaf as df asd f asd as ghjgfhjgfhjghjgfhjgfhjgfhjghjgfhjghjgfhj ghjf ghj ghj gh gf</td> 
      </tr> 
     </tbody> 
    </table> 
</weitereAnmerkungen> 

我的XSLT:

<xsl:template match="n1:weitereAnmerkungen"> 
     <xsl:if test="n1:table/n1:tbody/n1:tr/n1:td">  
      <xsl:apply-templates />  
     </xsl:if> 
    </xsl:template> 

我的問題是,這也當TD是不是充滿了文字,表格是可見的。但它不應該是可見的!

我希望有人能幫助我!

+1

你試過'測試= 「正常化空間(N1:表/ N1:TBODY/N1:TR/N1:TD)!= ''」' ? –

+0

不 - 非常感謝你,它的工作原理:D THX! – user3497759

回答

0

您可以檢查內容是否爲空以及額外的謂詞。另外,您可能要忽略空格與normalize-space

<xsl:template match="n1:weitereAnmerkungen"> 
    <xsl:if test="n1:table/n1:tbody/n1:tr/n1:td 
      and n1:table/n1:tbody/n1:tr/n1:td[normalize-space(.) != '']">  
     <xsl:apply-templates />  
    </xsl:if> 
</xsl:template> 
+0

謝謝,它也可以工作,但最後的差異是什麼=「normalize-space(n1:table/n1:tbody/n1:tr/n1:td)!=''」? – user3497759

+0

Markus的技巧通過使用這樣的事實來工作,如果「normalize-space」的參數是空序列,那麼[返回空字符串](http://www.w3.org/TR/xpath-functions/# func-normalize-space),然後允許你刪除節點存在檢查。在你的具體情況下,馬庫斯的方法應該沒問題。 – StuartLC