如何在xsl文件中判断某一个属性值是否为空,空值则不显示这条纪录?

时间:2021-09-09 19:27:20
xml文件大概如下:
<a>
   <a1>111</a1>
   <a2>222</a2>
   <a3></a3>
</a>
xsl代码如下:
<xsl:for-each select="/*">
   <table width="95%" border="0" align="center" cellspacing="0">
      <tr>
          <td bgcolor="f8f8f8" >
    <xsl:for-each select="./*">
       <table width="95%" border="0" align="center" 
<tr>
 <td height="25" colspan="2" class="title_1">
    <xsl:value-of select="name(.)" /><xsl:text> : </xsl:text>
</td>
</tr>
             <xsl:for-each select="./*">
  <tr>
  <td  width="40%" class="title_2">
  <xsl:value-of select="name(.)" /><xsl:text> : </xsl:text>
  </td>
                  <td bgcolor="f8f8f8">
  <xsl:value-of disable-output-escaping="no" select="." /> 
  </td>
  </tr>
  </xsl:for-each>
 </table>
</xsl:for-each>
</td>
</tr>
</table>
</xsl:for-each>
我希望不显示<a3>字段,我该如何调整xsl文件?
多谢!

3 个解决方案

#1


说明一点,我的xml文件中有很多节点,每个节点的属性都不一样,如:
<xxx>
<a>
<a1>111<a1>
<a2>222<a2>
<a3></a3>
</a>
<b>
<b1>444</b1>
<b2></b2>
</b>
...
有什么办法在xsl文件中控制不显示属性值为空的内容呢?

#2


try

<xsl:if test=". != '' ">
....
</xsl:if>

#3


多谢思归指点,问题解决。

#1


说明一点,我的xml文件中有很多节点,每个节点的属性都不一样,如:
<xxx>
<a>
<a1>111<a1>
<a2>222<a2>
<a3></a3>
</a>
<b>
<b1>444</b1>
<b2></b2>
</b>
...
有什么办法在xsl文件中控制不显示属性值为空的内容呢?

#2


try

<xsl:if test=". != '' ">
....
</xsl:if>

#3


多谢思归指点,问题解决。