<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="2.xsl"?>
<newdataset>
<student>
<id>1</id>
<oicq></oicq>
<name>sdf</name>
</student>
<student>
<id>2</id>
<oicq></oicq>
<name>sdf</name>
</student>
<student>
<id>3</id>
<oicq>21243468</oicq>
<name>sdf</name>
</student>
</newdataset>
请问上面这个xml文件中有的<oicq></oicq>为空值,有的不为空,所以我用xslt转换成html文件时判断,当它为不为空时显示出来否则不显示。请问我该怎么做?
我的这种做法为什么不对呢?
<xsl:if test="string-length(newdataset/student[position()]/oicq)>0">
<xsl:value-of select="oicq"/>
</xsl:if>
为什么我这种做法得出的全部显示,而不是我要的结果呢?

解决方案 »

  1.   

    对xml还在学习中,帮你顶一下
      

  2.   

    position()返回的只是当前点数,
    虽然可以判断该接点内是否为空但只能判断节点不能判断节点内
    的内容是否为空。
      

  3.   

    请问yuan1169(自由人)大哥
    除了这种做法<xsl:if test="oicq[.&gt;0]">
    用string-length又该怎么判断?
    假如我要的是email也要有同样的效果。
      

  4.   

    试试这个,已通过:
    <xsl:if test="string-length(oicq)>0">
         <xsl:text>oicq:</xsl:text>
         <xsl:value-of select="oicq"/>
    </xsl:if>