2014-12-23 3 views
0

테이블이 XSLT를 통해 렌더링됩니다. 문제는 @station 변수에 대한 데이터가없는 것입니다. td에 CSS에있는 테두리가있는 빈 셀이 필요하지만 데이터가 없으면 테두리를 렌더링하지 않습니다. td에 데이터가 있으면 경계를 렌더링합니다. 누군가가 td의 데이터에 관계없이 국경을 가질 필요가 있다면 무엇을해야하는지 말해 줄 수 있습니까?테이블이 XSLT에서 올바르게 렌더링되지 않습니다.

<xsl:template match="version"> 
    <tr> 

    <td nowrap="true" style="border-top:1px solid black;border-right:1px solid black;border-bottom:1px solid black"> 
     <content><xsl:value-of select="@station"/></content> 
    </td> 

    </tr>  
</xsl:template> 

감사

당신이 경우 역에 &nbsp;을 추가 할 수

답변

0

하지가 비어 있거나 중 하나입니다 :

<xsl:template match="version"> 
    <tr> 
    <td nowrap="true" style="border-top:1px solid black; 
     border-right:1px solid black;border-bottom:1px solid black"> 
     <content> 
     <xsl:value-of disable-output-escaping="yes" 
      select="if(@station and not(@station ='')) then @station 
        else '&amp;nbsp;'"/>  
     </content> 
    </td> 
    </tr>  
</xsl:template> 

더 나은 솔루션이있을 수 있습니다 때, 설정에 따라 다양한 확인할 수 있습니다 여기에 제안 : using a html entity in xslt (e.g. &nbsp;)
다른 접근 방식은 CSS를 사용하여이 문제를 해결하는 것입니다 :

empty-cells: show; 

td의 스타일로 표시해야합니다.
빈 셀에 테두리를 표시하려면 스타일을 주변 테이블에 설정하는 것이 더 쉬울 수도 있습니다. 여기에 제공된 다양한 제안 사항을 확인할 수 있습니다 : CSS to make an empty cell's border appear? 브라우저의 호환성을 고려해야합니다.

참조 용 : https://developer.mozilla.org/en/docs/Web/CSS/empty-cells

관련 문제