以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XSL/XSLT/XSL-FO/CSS 』  (http://bbs.xml.org.cn/list.asp?boardid=8)
----  如何判断一个元素是否非空?  (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=27220)


--  作者:erty
--  发布时间:2/13/2006 5:30:00 PM

--  如何判断一个元素是否非空?
XML中有类似如下定义:
<content>
<A>111111</A>
<B>222222</B>
<C/>
<D/>
</content>
这里,很明显的可以看出<C/>,<D/>两个元素的值是空的。

那么我想问问,在XSL中如何判断这些元素是否为空?
用<xsl:if>行不?
那具体是用那个函数来判断元素呢?


--  作者:Qr
--  发布时间:2/14/2006 9:26:00 AM

--  
<?xml version="1.0" encoding="GB2312"?>
<?xml-stylesheet type="text/xsl" href="2.xsl"?>
<content>
<A>111111</A>
<B>222222</B>
<C/>
<D/>
</content>

<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="/">
    <xsl:for-each select="content/*">
        <xsl:if test=".=''"><xsl:value-of select="name(.)"/>:空值</xsl:if>
        <xsl:if test=".!=''"><xsl:value-of select="name(.)"/>:<xsl:value-of

select="."/></xsl:if><br/>
    </xsl:for-each>
</xsl:template>
</xsl:stylesheet>
以上是xsl:if的用法,XSL中还有其它元素可用于判断。判断元素是否为空值也不仅以上一种方法。


--  作者:qizi82
--  发布时间:9/8/2006 1:09:00 PM

--  
那那个元素根本就没有 能判断出来吗 如何判断呢?

比如 下面没有<C/>这个元素 可以判断吗?
<?xml version="1.0" encoding="GB2312"?>
<?xml-stylesheet type="text/xsl" href="2.xsl"?>
<content>
<A>111111</A>
<B>222222</B>
<D/>
</content>


--  作者:Qr
--  发布时间:9/8/2006 1:23:00 PM

--  
 <xsl:choose>
  <xsl:when test="C">C元素存在!</xsl:when>
  <xsl:otherwise>C元素不存在!</xsl:otherwise>
 </xsl:choose>
--  作者:qizi82
--  发布时间:9/8/2006 1:30:00 PM

--  
多谢版主!没想到回贴这么快 不如留个msn吧 嘻嘻
--  作者:lhsunrice
--  发布时间:5/17/2007 3:40:00 PM

--  
那请问,怎么判断<A>标签中是否存在2222?
--  作者:lhsunrice
--  发布时间:5/17/2007 3:40:00 PM

--  
噢噢噢噢噢噢噢噢。明白了。~~
--  作者:lhsunrice
--  发布时间:5/17/2007 4:02:00 PM

--  
还是不明白。。。。。。
--  作者:gu_xiaorou
--  发布时间:5/17/2007 5:40:00 PM

--  
可以用contains(A, '2222')这个命令来判断
--  作者:lhsunrice
--  发布时间:5/18/2007 10:59:00 AM

--  
谢谢gu_xiaorou~~~~

--  作者:zsxy168
--  发布时间:9/19/2007 5:36:00 PM

--  
如果有:
<a id=1 name=asd add=sdrse />
<a id=2 name=dfgdsr add=sdfsdf />
<a id=8 name=aaewr add=dfsd />
<a id=3 name=aserawe add=fhdrty />
<a id=5 name=aea add=serawe />
这些节点,
请问我如何做才能从属性name中查找到只含有“ae“,并安id属性进行排序?
先谢谢了!
--  作者:gu_xiaorou
--  发布时间:9/21/2007 1:01:00 PM

--  
<xsl:for-each select="a[contains(name, 'ae')]">
<xsl:sort select="id" order="ascending"/>
</xsl:for-each>
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
78.125ms